2

バックボーン モデルでは、ネストされたビューの初期化関数でイベントをトリガーできますか? 現在のコードはhttps://stackoverflow.com/a/8523075/2345124の例に基づいており、バックボーン 1.0.0 用に更新しました。モデルの初期化関数は次のとおりです。

var Edit = Backbone.Model.extend({
    initialize: function() {
        this.trigger('marquee:add');

        this.on('change', function(){
            this.trigger('marquee:add');
        });
    }
    ...
}

モデルの初期化時に renderMarquee メソッドを呼び出そうとしています:

var EditRow = Backbone.View.extend({
    initialize: function() {
        this.listenTo(this.model, "change", this.render);   // works
        this.listenTo(this.model, "marquee:add", this.renderMarquee);  // only called when changed, but not when initially created
    ...
}

renderMarquee、モデルが変更されたときに呼び出されますが、初期化されたときではありません。「変更」イベントは期待どおりに機能します (this.render が呼び出されます)。何かご意見は?

ありがとう!

4

2 に答える 2

0

view.listenTo呼び出しを行う前にどこかでモデルを初期化しているため、これはあまり意味がありません。残念ながら、その点であなたに選択の余地はありません。

Backbone.Collectionおそらく、イベント処理を、追加/削除のためにリッスンできるイベントが既に組み込まれているに移動したいと思うでしょう。

于 2013-05-03T00:07:32.960 に答える