1

呼び出すことができる基本的なモーダルをセットアップするfetch()と、モデルが更新されます。fetch()ただし、属性にアクセスしようとするたびに呼び出されたいです。

だから私はこのようなものを持っています

get: function () {
    this.fetch()
    Backbone.Model.prototype.get.call(this, attr);
}

this.fetch() は非同期であるため、これは明らかに機能しません。フェッチを待つ方法、またはこの概念をより良い方法で実装する方法はありますか

4

1 に答える 1

1

get メソッドを上書きする必要があるかどうかはわかりません。非同期バージョンを作成し、そこから遅延オブジェクトを返す方がよい場合があります。

Fetch は非同期であり、それを回避する方法はないため、これを非同期で行う必要があります。

このようなものがうまくいくかもしれません:

getAsync: function(attribute){
  var dfd = $.Deferred(), model = this;
  this.fetch().done(function(){
    dfd.resolve(model.get(attribute));
  });
  return dfd.promise();
}

そして、次のように使用します。

model.getAsync(field).done(function(value){
  console.log(field + " was " + value)
});

(ここで動作するようですhttp://jsfiddle.net/FBp6h/

于 2013-06-04T00:59:06.457 に答える