Javascript 在呈现函数中引用Collections.where方法中的变量时出现问题
我在一段主干代码上遇到了一些问题。下面的代码与渲染函数有关。我可以检索所有的模型。当我试图在第1行使用“Collections.where”方法时,我的问题就出现了。如您所见,我已将一个对象文字传递到渲染函数中,但由于某些原因,我无法在第1行的customers.where方法中引用它。当我给这个方法一个像45这样的字面值时,它就工作了。有什么办法可以让我把变量引用传进来吗 非常感谢Javascript 在呈现函数中引用Collections.where方法中的变量时出现问题,javascript,backbone.js,Javascript,Backbone.js,我在一段主干代码上遇到了一些问题。下面的代码与渲染函数有关。我可以检索所有的模型。当我试图在第1行使用“Collections.where”方法时,我的问题就出现了。如您所见,我已将一个对象文字传递到渲染函数中,但由于某些原因,我无法在第1行的customers.where方法中引用它。当我给这个方法一个像45这样的字面值时,它就工作了。有什么办法可以让我把变量引用传进来吗 非常感谢 render: function(options) { var that = this; if
render: function(options) {
var that = this;
if (options.id) {
var customers = new Customers();
customers.fetch({
success: function (customers) {
/* #1 --> */ var musketeers = customers.where({musketeerId: options.id});
console.log(musketeers.length) //doesn't work as options.id is failing on last line
var template = _.template($('#customer-list-template').html(), {
customers: customers.models
});
that.$el.html(template);
console.log(customers.models);
}
});
} else {
var template = _.template($('#customer-list-template').html(), {});
that.$el.html(template);
}
}
虽然没有明确的文档记录,但在搜索时使用。从: 注意
attrs[key]!==模型。在回调函数内得到(key)<代码>,它不会考虑<代码> 10 <代码>(可能的<代码> ID >代码>值)和<代码> '10' <代码>(从<代码> <代码>中提取的一个可能的搜索值)是匹配的。这意味着:
customers.where({musketeerId: 10});
可能会发现一些东西,而:
customers.where({musketeerId: '10'});
不会的
您可以通过以下方式解决此类问题:
//从```中提取值的地方太远了。。。
options.id=parseInt($input.val(),10);
有人知道如何将动态值传递给对象文本,或者知道如何解决这个问题吗?谢谢你有什么错误吗?当我说->>var muskeeters=customers.where({muskeeterid:10});我得到了火枪手长度的值100。当我使用一个值为10的变量时,比如options.id=10,并说var muskeeters=customers.where({muskeeterid:options.id});我为火枪手得到0。Length你确定选项.id
是45
而不是'45'
?@muistooshort-嘿,你是对的。我甚至没有意识到这些差异是在javascript中产生的。非常感谢你的帮助。我想提高投票率,但我还没有得到足够的分数。如果你把答案移到下面,我会把它标记为正确答案
customers.where({musketeerId: '10'});
// Way off where you extract values from the `<input>`...
options.id = parseInt($input.val(), 10);