0

モデルでのフェッチとコレクションでのフェッチを理解するための簡単な実験を行いました。ただし、このコードは両方に「未定義」を与えます。

    // Model and Collection
    var SingleItem = Backbone.Model.extend({
      urlRoot : '/data/item.json',
      parse: function(response) {
          console.log(response);
          return response;
      }
    });

    var ManyCollection = Backbone.Collection.extend({
      model: SingleItem,
      url: '/data/items.json',
    });

    var many = new ManyCollection();
    many.fetch();
    console.log(many);

    var single = new SingleItem();
    single.fetch({
      success: function(data) {
        console.log("OK"); 
        console.log(data.toJSON());
      },
      error: function(data){
        console.log("NOK");
      }
    });


    console.log(single.get('name'));

デモもここにあります:https ://github.com/mulderp/backbone-model-fetch

なぜ「未定義」になるのですか?私は何が欠けていますか?

(開発コンソールからの出力:

開発出力

4

1 に答える 1

3

fetch非同期です。データがフェッチされる前にすぐに戻ります。

デバッグロジックをsuccessハンドラー内に移動すると、問題が修正されるはずです。

于 2012-12-11T12:17:32.807 に答える