Javascript where筛选器键中的Backbonejs变量
只是想知道是否有人知道为什么我不能在一个“where”中同时获得两个键/值以实现动态?我可以通过一个变量来计算值,这个变量工作得很好,但我似乎根本无法获得运行变量的关键 我的小提琴在这里:我正在努力工作的代码如下 我是个新手,所以有可能这是你不能做的事情,我只是还不知道Javascript where筛选器键中的Backbonejs变量,javascript,backbone.js,Javascript,Backbone.js,只是想知道是否有人知道为什么我不能在一个“where”中同时获得两个键/值以实现动态?我可以通过一个变量来计算值,这个变量工作得很好,但我似乎根本无法获得运行变量的关键 我的小提琴在这里:我正在努力工作的代码如下 我是个新手,所以有可能这是你不能做的事情,我只是还不知道 var newCollection = function(myCollection,prop,val){ alert('myprop: ' + prop); alert('val: ' + val); var results
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);
}
感谢您的时间您的代码无法工作,因为键“prop”总是被逐字解释为字符串。因此,您可以通过
{“prop”:val}
进行搜索,而不是通过{“location”:val}
进行搜索。有两种方法可以解决这个问题
1.
2.
您的代码不起作用,因为键“prop”总是被逐字解释为字符串。因此,您可以通过
{“prop”:val}
进行搜索,而不是通过{“location”:val}
进行搜索。有两种方法可以解决这个问题
1.
2.
有几种方法可以做到这一点,最简单的方法是创建一个占位符对象,并指定键和值:
var query = {};
query[prop] = val;
var results = myCollection.where(query);
或者,如果这太冗长,并且您只需要很少的开销就可以了,那么您可以使用\uuu.object
var results = myCollection.where(_.object([prop], [val]);
有几种方法可以做到这一点,最简单的方法是创建一个占位符对象,并指定键和值:
var query = {};
query[prop] = val;
var results = myCollection.where(query);
或者,如果这太冗长,并且您只需要很少的开销就可以了,那么您可以使用\uuu.object
var results = myCollection.where(_.object([prop], [val]);