2

変更イベントをビューからモデルにバインドして名前を変更し、変更された名前をビュー ブロックに表示する方法。

Student = Backbone.Model.extend({
    initialize: function(){
        this.on("change:name", function(model){
            var name = model.get("name");
            alert("Changed my name to " + name );
        });
    }
});

var pe = new Student({ name: "sinduja", age: 20});
pe.set({name: 'shalini'});
4

2 に答える 2

1

バックボーンはmodel.setで変更イベントを自動的にトリガーしませんか?

ビューを変更イベントに登録するだけです。

Student = Backbone.Model.extend({
    initialize: function(){
        //initialize variables
    }
});

StudentView = Backbone.View.extend({
    initialize: function(model) {
        _.bindAll(this);
        model.on("change:name",this.nameChanged)
    },
    nameChanged: function(evt) {
        console.log("name changed", evt)
    }

})

使用法:

var pe = new Student({ name: "sinduja", age: 20});
var sv = new StudentView(pe);
pe.set({name: 'shalini'});
于 2013-02-20T13:01:23.107 に答える
0

以前は、双方向のモデル/ビューの変更に対応するために独自のカスタムを作成していましたが、これはメンテナンスが少し面倒でした。次に、プラグインBackbone.ModelBinderを見つけました。

それはあなたが達成したいことをばかげて簡単にします。リンク先の github readme ページにいくつかの良い例があるので、私が何かを与える意味はありません! 最初は少し混乱するように思われる場合は、長期的にはこのプラグインが私と同じように数え切れないほどの時間を節約できるので、それを機能させるために最善を尽くすことをお勧めします.

于 2013-02-20T12:33:26.053 に答える