这可能是相当愚蠢的,但现在已经困扰了我一段时间。试图让AngularJS得到一些东西,这让我很难过。
在回调中我有类似的东西:
var xyz = {
"modA" : null,
"modB" : null,
"modC" : null
}
然后我也附上一些方法......
xyz.setModA = function(elementId) {
var someConfig = {};
// attach some kind of event callback on stateChange
someConfig.events.onStateChange = this.helper;
this.modA = new someObject(someConfig);
}
xyz.setModC = function(vars) {
....
}
xyz.helper = function(event) {
....
this.setModC(vars);
}
当我们实例化的modA对象的状态发生变化时,会发生onStateChange事件并且正确会触发我拥有的 xyz.helper 方法,但我会立即获得未捕获的TypeError:undefined不是函数?出于某种原因,当事件触发时,它现在没有看到setModC方法?
答案 0 :(得分:6)
事件处理程序中的上下文(this
)不是所需的对象。
要确保正确的背景,请更改
someConfig.events.onStateChange = this.helper;
到
someConfig.events.onStateChange = this.helper.bind(this);