1

バックボーン モデルのパラメーターをコールバック内から設定しようとしていますが、「this.set is not a function.」というエラーが引き続き発生します。_.bindAll はこれらのシナリオを解決するためのものだと思いました...間違って使用していますか? コールバックが発生するまでモデルのステータス パラメータを設定しないようにするために使用できる別のアプローチはありますか?

var Service = Backbone.Model.extend({
    defaults : {
        status : "off"
    },
    url : "/status",
    initialize : function {
        _.bindAll(this, "getStatus");
        this.getStatus();
    },
    getStatus : function() {
        $.getJSON(this.url(), function(data) {
            this.set({status : data.status});
        }); 
    }
});
4

1 に答える 1

1

thisコールバックのコンテキスト内でモデルを参照しません.getJSON。モデルへの参照を保存して、次のようにコールバック内でアクセスできるようにすることができます。

getStatus : function() {
    var model = this;
    $.getJSON(this.url(), function(data) {
        model.set({status : data.status});
    }); 
}
于 2012-07-23T17:11:55.953 に答える