只是想知道是否有人知道为什么我无法在'其中'中获得两个键/值。要动态吗?我可以通过一个完美的变量来做值,但我似乎无法获得运行变量的键。
我的小提琴在这里:http://jsfiddle.net/leapin_leprechaun/eyw6295q/我试图开始工作的代码如下。
我是骨干的新手,所以有可能这是你无法做到的事情,我还不知道呢!
var newCollection = function(myCollection,prop,val){
alert('myprop: ' + prop);
alert('val: ' + val);
var results = myCollection.where({
//prop: val this doesn't work even if I put a string above it to make sure the value coming through is fine
//prop: "Glasnevin" //this doesn't work
"location" : val //this works
});
var filteredCollection = new Backbone.Collection(results);
var newMatchesModelView = new MatchesModelView({collection: filteredCollection });
$("#allMatches").html(newMatchesModelView.render().el);
}
感谢您的时间
答案 0 :(得分:2)
您的代码无效,因为密钥" prop"总是按字面意思解释为字符串。因此,您按{"prop": val}
搜索,而不是{"location": val}
。有几种方法可以解决这个问题
var where = {};
where[prop] = val;
var results = myCollection.where(where);
var results = myCollection.where(_.object([prop], [val]));
答案 1 :(得分:2)
有几种方法可以做到这一点,最简单的方法是创建占位符对象,并分配键和值:
var query = {};
query[prop] = val;
var results = myCollection.where(query);
或者,如果情况过于冗长,并且您的非常开销很小,则可以使用_.object
var results = myCollection.where(_.object([prop], [val]);