Backbone.js:" model"内部"渲染:功能(模型){...}"?

时间:2012-01-25 03:11:44

标签: javascript 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);
    }
});

以下是jsFiddle链接http://jsfiddle.net/HVK7F/

1 个答案:

答案 0 :(得分:1)

当从add集合触发animals事件时,回调方法的第一个参数将是添加到集合中的项目。

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

查看add methodannotated source,了解它是如何被调用的。最终这是这条线的结果:

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

trigger()获取除第一个之外的所有参数,并将它们传递给回调。