我正在使用backboneJS model.on('change:attribute',functionName(someParameter))
来监听模型属性的变化并调用具有给定参数的函数。但我面临的问题是,即使模型没有变化,最初也会调用该函数。之后,即使模型发生变化,也不会调用该函数。我做了一些试验,发现如果没有参数,如果我调用('change:attribute',functionName)
,事件会正确触发。我不明白问题是什么。任何人都可以帮忙,因为我认为我在这里遗漏了一些非常基本的东西。解决此类问题的方法将不胜感激。谢谢。
问问题
155 次
1 回答
2
该.on()
方法期望您传递将被调用以处理事件的回调函数或方法。但是在您的第一个示例中,您尝试传递该回调的结果。
所以里面会执行yourCallback.call(...)
or yourCallback.apply(...)
。显然它不能执行.call()
非函数值的方法。
但是如果你真的需要它,你可以将方法调用包装在匿名函数中。例如,如果您需要使用该someParameter
值:
var MyView = Backbone.View.extend({
// ...
myMethod: function(someParameter) {
this.model.on('change:attribute', function() {
functionName(someParameter);
});
}
});
于 2013-10-08T05:45:24.097 回答