1

そのようなビューの新しいオブジェクトを作成するaddone im

this.section = "aaa";
var sectionview = new AA(model:this.model,section:this.section);

セクションは、AAビューに渡す別のビューのグローバル変数です。しかし、セクションを渡した後、このような追加の最後にその値が変更されます

this.section = "aaa";
var sectionview = new AA(model:this.model,section:this.section);
.
.
.
.
.
.
this.section = "sss";

ビューAAの作成時に渡したセクションの値を更新するにはどうすればよいですか??? 期待される答えは

this.options.section = "sss" not "aaa"

AAビューで

4

1 に答える 1

3

この種のことに対する通常のアプローチは、拡張Backbone.Eventsしてグローバル pub/sub イベント ディスパッチャーを構築することです。

window.pub_sub = _({}).extend(Backbone.Events);

次に、ビューは からのイベントをリッスンできますpub_sub:

initialize: function() {
    this.listenTo(pub_sub, 'change:section', this.section_changed);
    //...
},
section_changed: function(section) {
    this.section = section;
    // And whatever else needs to happen...
}

次に、セクションを変更したときにイベントをトリガーします。

pub_sub.trigger('change:section', new_section_value);

イベントが確実にトリガーされるように、どこかで単一の関数呼び出しを介してグローバル セクションへのすべての変更を注ぎ込みたいと思いますが、とにかくそのようなことを行う必要があります。

デモ: http://jsfiddle.net/ambiguous/rPtfS/

これらの設定を永続化する必要がある場合はpub_sub、グローバル設定モデルに変更し、通常のモデル永続化メカニズムを使用してください。

于 2013-05-13T07:16:38.440 に答える