Backbone findWhere 什么也没找到
Backbone findWhere finds nothing
我的 collection 有 4494 个模型。我尝试使用 findWhere 通过 id 获取特定模型。 findWhere returns 'undefined'。
如果我限制模型数量就可以了。当模型数量超过 100 时,这种奇怪现象就会加剧。
var users = this.usersCollection;
console.log(users);
console.log(users.findWhere({uid: 1}));
虽然问题已解决(在实际获取集合之前使用 findWhere
)感谢搜索时 , you might want to use .get
而不是 findWhere
id 的模型。
如果您的 User
模型看起来像这样:
var User = Backbone.Model.extend({
idAttribute: 'uid',
// ...
});
您可以直接从集合中通过 id 获取用户:
var user = users.get(1);
您还可以将 get
与模型的 cid
或模型实例一起使用。
user === users.get(user.cid)
user === users.get(user)
这更好,因为 Backbone 除了通常的数组外,还保留了具有指定 id 属性的模型的散列作为键。
问题是我在 collection 完全获取之前尝试使用它。
我的 collection 有 4494 个模型。我尝试使用 findWhere 通过 id 获取特定模型。 findWhere returns 'undefined'。
如果我限制模型数量就可以了。当模型数量超过 100 时,这种奇怪现象就会加剧。
var users = this.usersCollection;
console.log(users);
console.log(users.findWhere({uid: 1}));
虽然问题已解决(在实际获取集合之前使用 findWhere
)感谢搜索时 .get
而不是 findWhere
id 的模型。
如果您的 User
模型看起来像这样:
var User = Backbone.Model.extend({
idAttribute: 'uid',
// ...
});
您可以直接从集合中通过 id 获取用户:
var user = users.get(1);
您还可以将 get
与模型的 cid
或模型实例一起使用。
user === users.get(user.cid)
user === users.get(user)
这更好,因为 Backbone 除了通常的数组外,还保留了具有指定 id 属性的模型的散列作为键。
问题是我在 collection 完全获取之前尝试使用它。