2012-01-25 40 views
1

我问这基于一个博客,我读...Backbone.js的:什么是 “模式” 里面的 “渲染:函数(模型){...}”?

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); 
    } 
}); 

这里的链接的jsfiddlehttp://jsfiddle.net/HVK7F/

回答

1

add事件从animals收集解雇,回调方法的第一个参数是添加到收藏项目。

在这种情况下,render(model)被用作事件处理程序,并且模型将被添加的项目。

查看annotated sourceadd method以了解它是如何被调用的。最终,这是此行的结果:

if (!options.silent) model.trigger('add', model, this, options); 

trigger()通吃的参数除了第一个,并将它们传递给回调。

+0

感谢你做有没有一点额外的努力;) –

+0

@JanCarloViray - 没问题 –

相关问题