我有一个应该显示单个模型的视图。通过单击链接,用户可以选择要显示的模型。当发生这种情况并且所选模型已经获取时,如何告诉视图切换到另一个模型?我看到了三种可能的选择。
fetch()
,希望它在视图中神奇地刷新。第一种方法感觉就像'正确'一样,但我找不到一种简单的方法(设置model
很容易,但所有事件都应该反弹以使视图自动更新)。第二种感觉很奇怪,可能容易发生冲突(如果有相同ID的模型有两个对象会发生什么?)并且可能根本不起作用。第三个似乎太麻烦了。那么,我该怎么办?
答案 0 :(得分:0)
您可能需要考虑使用BackBinder的ModelBinder库:https://github.com/theironcook/Backbone.ModelBinder
您有两种可能的方式来刷新视图。您可以将模型绑定到视图一次,然后始终更新模型中的属性。这种方式在Model属性更改时,ModelBinder将自动更新View。
另一种解决方案是从View中取消绑定Model,并将其重新绑定到另一个Model。
这可能会给你一个想法:http://jsfiddle.net/dazqS/视图中有一个refreshModel函数,它取消绑定旧模块,然后重新绑定新模块。
refreshModel: function(model){
this._modelBinder.unbind();
this.model = model;
this._modelBinder.bind(this.model, this.el);
}