我正在使用backboneJS model.on ('change:attribute',functionName(someParameter))
来监听模型属性的变化并调用给定参数的函数。但我面临的问题是,即使模型没有变化,该函数也会被最初调用。之后,即使模型发生变化,该函数也不会被调用。我做了一些试验,发现没有参数,如果我调用 ('change:attribute',functionName)
,
事件正确触发。我不明白问题是什么。任何人都可以帮忙,因为我认为我在这里缺少一些非常基本的东西。解决此类问题的方法将不胜感激。谢谢。
最佳答案
.on()
方法希望您传递将被调用来处理事件的回调函数或方法。但在第一个示例中,您尝试传递该回调的结果。
因此,它内部将执行 yourCallback.call(...)
或 yourCallback.apply(...)
。显然它无法执行非函数值的.call()
方法。
但是如果您确实需要的话,您可以将方法调用包装在匿名函数中。例如,如果您需要使用该 someParameter
值:
var MyView = Backbone.View.extend({
// ...
myMethod: function(someParameter) {
this.model.on('change:attribute', function() {
functionName(someParameter);
});
}
});
关于javascript - model.on ('change' 、 function()) 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19239891/