0

我做了一个简单的实验来理解模型上的 fetch 和集合上的 fetch。但是,此代码为两者都提供了“未定义”:

    // 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 回答