我想对集合使用下划线方法“发现”,但它不给我我希望的结果用下划线法“查找”:中的骨干收集
我有没有一个基本模型默认和默认集合。我集合中的模型只有两个属性:tranId(guid作为字符串)和perform(执行的函数)。
我试图找到我传递给它tranId匹配的集合中的项目...
var tranId = "1a2b3c";
var found = _.find(myCollection, function(item){
return item.tranId === tranId;
});
发现总是不确定的,即使调试器显示我的收藏呢,确实有tranId与我的变量相匹配的项目。我无法在return语句中设置断点来查看item.tranId等同于什么。我也试过这个...
var found = _.find(myCollection, function(item){
return item.get('tranId') === tranId;
});
但是,同样的事情。 '找到'总是未定义的。我在这里做错了什么?
谢谢,这工作。为什么Underscore方法不以相同的方式工作?还应该注意的是,tranId是一个字符串,而不是一个数字。所以,类型转换不是必需的。 – 2012-07-16 15:05:20
@JoelCDoyle如果你想直接使用下划线方法可能会更好地使用myCollection.models,因为它是原始数据你的模型http://backbonejs.org/#Collection-models - 类型转换是为了防止严格的数据分析比较的问题。 :D – 2012-07-16 15:32:07
很酷。非常感谢! – 2012-07-16 20:15:32