0

モデル付きのバックボーンビューがあります。

さらに、アプリケーション固有のものを保持するグローバルモデルがあります。

このモデルのchangeイベントをビューのrenderメソッドにバインドしていますが、これは機能していないようです。

model: new Preferences.Item(),

render: function() {

    $(that.el).html(template(that.model.toJSON()));                 
},

initialize : function() {
        this.render = _.bind(this.render, this);
        // global account model holder
            App.Storage.account.bind("change", this.render);
},

外部モデルのイベントにアタッチするには、特定のバインディングを実行する必要がありますか?

4

2 に答える 2

1

renderBackbone のインライン バインディングを使用してメソッドをバインドする必要があります。また、メソッドで使用thatするrenderと、それについてエラーになります。

var ModelView = Backbone.View.extend({
    model: new Preferences.Item(),
    template: _.template('<div><%= variable %></div>');
    render: function () {
        this.$el.html(this.template(this.model.toJSON()))
    },
    initialize: function () {
        App.Storage.account.on('change', this.render, this);
    }
});
于 2012-05-04T12:40:55.783 に答える
0

解決策が見つかりました...電話する必要があります:

App.Storage.account.on("change", this.render) 
于 2012-05-04T08:35:54.917 に答える