我正在学习backbone.js
。我从backbone.js文档中找到了以下代码。
//cretaing class name as Sidebar with extends Backbone.Model class
var Sidebar = Backbone.Model.extend({
promptColor:function() {
var cssColor = prompt("Please enter a CSS color:");
this.set({color1: cssColor});
}
});
//cretaing object for Sidebar class
var sidebarObject = new Sidebar();
//following statement not understand
sidebarObject.on("change:color1", function(model, color23) {
$('#body1').css({background: color23})
});
我的理解:
每当属性color1
自动更改时,模型('Slidebar')会触发sidebarObject.on()
。
我不明白的是:
model,color23
传递给sidebarObject.on()
的第二个参数。我对这些论点一无所知。 2.根据我的理解模型在我的例子中是Sidebar
。是的。
任何人都可以帮助我。
感谢。
答案 0 :(得分:2)
是的,您的第二个假设是正确的,在上面的示例中,补充工具栏是模型。
有两个参数传递给回调函数:
请注意,sidebarObject
仅侦听“颜色”更改事件。更改模型的特定属性时会生成此类事件:
this.set({color1: cssColor});
现在,如果您将侦听器更改为:
sidebarObject.on("change:taste", function(model, color23) {
$('#body1').css({background: color23})
});
当this.set({color: cssColor});
被调用时,它不再是火,因为它会听到'品味'变化:
this.set({taste: 'good'});
我已将上述示例分成小提琴,以便您可以使用它:http://jsfiddle.net/CtzsR/1/
如果您对这件事情不熟悉,http://backbonetutorials.com/what-is-a-model/是一个值得关注的网站。
我希望现在它更清楚了。