我是根据我读过的博客问这个...
backbone.js simple inheritance...
参数模型来自render: function(model){...}
?我知道集合中的每个新项目都会调用this.render
,但函数(模型)的来源是什么?如何将其作为SingleAnimalView的模型传递,如:new SingleAnimalView({model: model})
?
var AnimalView = Backbone.View.extend({
el: "#demo",
initialize: function(){
window.animals.bind("add", this.render, this);
},
render: function(model){
var singleAnimalView = new SingleAnimalView({model: model});
$(this.el).append(singleAnimalView.el);
}
});
以下是jsFiddle链接:http://jsfiddle.net/HVK7F/
答案 0 :(得分:1)
当从add
集合触发animals
事件时,回调方法的第一个参数将是添加到集合中的项目。
在这种情况下,render(model)
被用作事件处理程序,模型将是添加的项目。
查看add
method的annotated source,了解它是如何被调用的。最终这是这条线的结果:
if (!options.silent) model.trigger('add', model, this, options);
trigger()
获取除第一个之外的所有参数,并将它们传递给回调。