1

这是一个架构问题。假设我有一个模型,N 个视图可能(或可能不)绑定到它。如何在此模型中进行更改以使所有视图都更改?我怀疑必须有一些设计模式。我想过让我的主干模型有一个视图数组,并有一个函数可以简单地通过所述数组并将视图的名称作为事件触发。

这是一种方法吗?我可以使用什么模式?我应该如何构建这样的东西?

4

1 回答 1

2

您的模型不应该知道呈现它的视图,以保持 MVC 关注点分离。阅读有关events的文档。您可以让您的视图监听change事件,然后相应地更新自己。

Views的文档有一个很好的例子:

var DocumentRow = Backbone.View.extend({

  tagName: "li",

  className: "document-row",

  events: {
    "click .icon":          "open",
    "click .button.edit":   "openEditDialog",
    "click .button.delete": "destroy"
  },

  initialize: function() {
    this.listenTo(this.model, "change", this.render);
  }

  render: function() {
    ...
  }

});
于 2013-04-12T19:52:38.523 回答