1

これはアーキテクチャの問題です。1 つのモデルがあり、それに N 個のビューがバインドされている (またはバインドされていない) とします。このモデルを変更してすべてのビューを変更するにはどうすればよいですか? これには何らかの設計パターンが必要だと思います。バックボーン モデルにビューの配列を持たせ、その配列を単純に通過し、ビューの名前をイベントとしてトリガーする関数を持たせることを考えました。

それはこれを行う方法ですか?どのパターンを使用できますか? このようなものをどのように設計すればよいでしょうか?

4

1 に答える 1

2

MVC の関心の分離を維持するために、モデルはそれを提示するビューを認識しないようにする必要があります。eventsに関するドキュメントを読んでください。ビューにイベントをリッスンさせ、changeそれに応じてビューを更新することができます。

ビューのドキュメントには、これの良い例があります:

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 に答える