Backbone JS如何向视图添加新模型以自动重新呈现模板

时间:2012-08-15 17:54:38

标签: backbone.js backbone-views

我想将新模型附加到视图并重新渲染视图。我能够首先渲染视图,但是我无法将该视图中的数据更改为新模型。

my_model_1 = Backbone.Model.extend({});
my_model_2 = Backbone.Model.extend({});

my_view = Backbone.View.extend({
    initialize : function() {
        _.bindAll(this, 'render');
        this.model.bind('change', this.render);
    },

    render : function(){

    }
});

var view_instance = new my_view({ model: my_model_1 });

//Template gets rendered


try{
    view_instance.changeModel(my_model_2);
}catch(e){console.log(e)};
try{
    view_instance.set(my_model_2);
}catch(e){console.log(e)};
try{
    view_instance.fetch(my_model_2);
}catch(e){console.log(e)};
try{
    view_instance.model = my_model_2;
}catch(e){console.log(e)};  

//Template should get updated with data from model 2

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

change事件如果在模型中的数据发生变化时被触发,在您的情况下,您的视图不是“重新获得”,因为它的模型数据没有改变而只是您切换模型。切换视图模型后,您可以手动trigger更改事件,或者调用render方法

例如

view_instance.model = my_model_2;
my_model_2.change();