抱歉,我不知道如何表达这个问题。我知道这是某种范围问题。但是我想要完成的任务是不可能的吗?
app.factory('SystemStatusConnectionFactory', ['$timeout', '$q', 'SystemStatusFactory', 'SystemStatusOptionsFactory',
function ($timeout, $q, SystemStatusFactory, SystemStatusOptionsFactory) {
var self = this;
var SystemStatusConnectionFactory = function (ip, user, pw, options) {
this.data = {
count: 0
};
this.PollIP = function () {
console.log(this.data.count); //WORKS
$timeout(function () {
console.log(self.data.count); //DOES NOT WORK
console.log(this.data.count); //DOES NOT WORK
}, 1000);
}
};
... etc
最佳答案
不确定您是否已经从评论中解决了这个问题(因为我不明白为什么这首先不起作用),但是您是否尝试过使用 bind()
函数那个超时的函数参数?这将消除使用 var self = this
// ...
this.PollIP = function () {
console.log(this.data.count);
$timeout(function () {
console.log(self.data.count);
console.log(this.data.count);
}.bind(this), 1000); // modified line
}
// ...
关于javascript - 如何访问构造函数中的构造函数成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37979865/