一旦存在idAttribute ='_ id'

时间:2015-05-11 17:37:26

标签: backbone.js backbone-collections backbone-model

我有一个模型用户设置如下:

 User = Backbone.Model.extend({
      urlRoot: '/users',

      defaults: {
        id: '',
        username: '',
        password: ''
      },

      idAttribute: '_id',

      initialize: function () {
        console.log('User initiated');
      }

    });

和Collection一样:

var Users = Backbone.Collection.extend({

    url: "/users",

    model: User,

  });

  Users = new Users();

然后当我试图在我的视图中使用时获取模型 Users.fetch(),无论我在后端有多少结果,我只会在“集合”数组中返回一个结果。

但是,在我从模型用户中删除idAttribute:'_ id'后,我得到了确切的结果数作为后端。

有谁知道为什么会这样?

P.S。 当我进入控制台时,似乎Users.fetch()的启动次数与我拥有的用户数相同(每次回调集合中只有1个模型)。所以基本上最后一次调用会覆盖所有以前的调用,只显示最后的结果。

但我仍然不知道到底发生了什么。

1 个答案:

答案 0 :(得分:0)

当您的id属性未定义所有模型或其他相同值时,通常会发生这种情况。检查值_id是否已在响应中定义且不同。

编辑:

您确定在没有下划线的情况下尝试引用id吗?如果是这种情况,您可以省略idAttribute属性,因为id是默认值。