Javascript 主干:如何在视图中用另一个模型替换一个模型?
我有一个视图,应该显示一个模型。通过单击链接,用户可以选择要显示的模型。当这种情况发生时,并且选定的模型已获取,我如何告诉view切换到另一个模型?我认为有三种可能的选择Javascript 主干:如何在视图中用另一个模型替换一个模型?,javascript,backbone.js,Javascript,Backbone.js,我有一个视图,应该显示一个模型。通过单击链接,用户可以选择要显示的模型。当这种情况发生时,并且选定的模型已获取,我如何告诉view切换到另一个模型?我认为有三种可能的选择 以某种方式将视图重新绑定到新模型并刷新它 回收模型对象-设置新选择的模型的ID并fetch()它,希望它能在视图中神奇地刷新 删除视图,然后使用新模型重新创建它(当它完成抓取时) 第一种方法感觉像是“正确”的方法,但我找不到一种简单的方法(设置model很容易,但所有事件都应该反弹,以便视图自动更新自身)。第二种感觉很奇怪,可
fetch()
它,希望它能在视图中神奇地刷新第一种方法感觉像是“正确”的方法,但我找不到一种简单的方法(设置
model
很容易,但所有事件都应该反弹,以便视图自动更新自身)。第二种感觉很奇怪,可能容易发生冲突(如果模型中有两个具有相同ID的对象会发生什么情况?),并且可能根本不起作用。第三个似乎太麻烦了。那么,我该怎么办? 您可能需要考虑使用MyBrand库作为主干:
有两种可能的刷新视图的方法。您可以将模型绑定到视图一次,然后始终在以后更新模型中的属性。这样,当模型属性更改时,ModelBinder将自动更新视图
另一种解决方案是将模型从视图中解除绑定,然后将其重新绑定到另一个模型
这可能会给你一个想法:视图中有一个refreshModel函数,它解除旧模型的绑定,并重新绑定新模型
refreshModel: function(model){
this._modelBinder.unbind();
this.model = model;
this._modelBinder.bind(this.model, this.el);
}