0

我有一个应该显示单个模型的视图。通过单击链接,用户可以选择正在显示的模型。当发生这种情况并且已获取所选模型时,我如何告诉视图切换到另一个模型?我看到了三种可能的选择。

  1. 以某种方式将视图重新绑定到新模型并刷新它。
  2. 回收模型对象 - 设置新选择的模型的 ID 和fetch()它,希望它会神奇地在视图中刷新。
  3. 删除视图,然后使用新模型重新创建它(当它完成获取时)。

第一种方法感觉像是“正确”的方法,但我找不到一种简单的方法(设置model很容易,但所有事件都应该重新启动,以便视图自动更新)。第二个感觉很奇怪,可能容易发生冲突(如果模型有两个具有相同 ID 的对象会发生什么?)并且可能根本不起作用。第三个好像太麻烦了。所以我该怎么做?

4

1 回答 1

0

您可能需要考虑为 Backbone 使用 ModelBinder 库:https ://github.com/theironcook/Backbone.ModelBinder

您有两种可能的方式来刷新视图。您可以将模型绑定到视图一次,然后始终更新模型中的属性。这样当 Model 属性发生变化时,ModelBinder 会自动更新 View。

另一种解决方案是将模型与视图解除绑定,并将其重新绑定到另一个模型。

这可能会给你一个想法: http: //jsfiddle.net/dazqS/视图中有一个 refreshModel 函数,它解除了旧模型的绑定,并重新绑定了新模型。

refreshModel: function(model){
    this._modelBinder.unbind();
    this.model = model;
    this._modelBinder.bind(this.model, this.el);
}
于 2013-10-15T12:28:04.983 回答