注册一个具有多个视图的Backbone模型

时间:2013-04-12 19:47:42

标签: javascript backbone.js

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

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

1 个答案:

答案 0 :(得分:2)

您的模型不应该知道提出它的观点,以保持MVC分离关注点。阅读events上的文档。您可以让您的观点收听change事件,然后相应地更新自己。

documentation of 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() {
    ...
  }

});