Javascript 在呈现函数中引用Collections.where方法中的变量时出现问题

Javascript 在呈现函数中引用Collections.where方法中的变量时出现问题,javascript,backbone.js,Javascript,Backbone.js,我在一段主干代码上遇到了一些问题。下面的代码与渲染函数有关。我可以检索所有的模型。当我试图在第1行使用“Collections.where”方法时,我的问题就出现了。如您所见,我已将一个对象文字传递到渲染函数中,但由于某些原因,我无法在第1行的customers.where方法中引用它。当我给这个方法一个像45这样的字面值时,它就工作了。有什么办法可以让我把变量引用传进来吗 非常感谢 render: function(options) { var that = this; if

我在一段主干代码上遇到了一些问题。下面的代码与渲染函数有关。我可以检索所有的模型。当我试图在第1行使用“Collections.where”方法时,我的问题就出现了。如您所见,我已将一个对象文字传递到渲染函数中,但由于某些原因,我无法在第1行的customers.where方法中引用它。当我给这个方法一个像45这样的字面值时,它就工作了。有什么办法可以让我把变量引用传进来吗

非常感谢

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);