1

だから私はこれを行うための最良の方法が何であるかわかりません、現在私はこのようないくつかのように見えるajax呼び出しを持っています

var _this = this;

        _.each(this.models, function (model) {

            model.fetch({
                success: function(model, response) {
                    if (_.has(model.attributes, "settings")) {                            
                            _this.populateSettings(_this);
                        }
                    }

PopulateSettingsメソッドでは、このバックボーンビューに特定の属性が必要です。特定の各属性を渡すか、このバックボーンビューへの参照を渡し、populateSettingsでその参照を使用してビューにデータを入力する以外に、これらの属性を取得する方法がわかりませんでした。これを行うためのより良い方法はありますか?ありがとう。

4

1 に答える 1

2

sync1つのオプションは、ビュー内のイベントをリッスンすることです。これにより、サーバーからのデータと正常に同期さmodelれるたびに、ビューが実行されるようになります。modelpopulateSettings

これは次のようになります。

model.on('sync', this.populateSettings, this)

3番目の引数に注意してくださいthis。3番目の引数として渡すthisと、イベントハンドラーが実行されるコンテキストが設定されます。Backbone.jsドキュメントから:

コールバックが呼び出されたときにこのコンテキスト値を提供するには、オプションの3番目の引数を渡します。model.on('change', this.render, this)

このようなイベントリスナーを使用した場合は、success:オプションを完全に削除できます。また、changeまたはchange:[attribute]イベントも役立つ場合があります。

于 2013-03-26T04:01:29.597 に答える