gpt4 book ai didi

javascript - 将变量传递给 meteor 应用程序中的 mongodb 查询

转载 作者:可可西里 更新时间:2023-11-01 10:04:36 24 4
gpt4 key购买 nike

所以我尝试着手使用一个简单的 meteor 应用程序来搜索数据库。我有一个输入框,我从中使用以下代码获取搜索查询:

Template.search.events = {
'keydown input#search' : function (event) {
if (event.which == 13) {
var item = document.getElementById('search');
Template.results.results(item.value)
//console.log(item);
item.value = '';
}
}
}

我将搜索查询传递给另一个函数,该函数应该查询 mongodb 并在模板中打印结果:

Template.results.results = function (item) {
return Products.find({sku: item});
}

但是,它从未找到该项目!如果我在 Chrome 的控制台中运行相同的查询,它就会工作。如果我将代码中的 {sku: item} 替换为(例如){sku: "A2277"}(在我的数据库中),那么它就可以工作了!如果我在 Template.results.results 函数中创建一个新变量,例如 var item = "A2277"也可以。这是怎么回事?!

最佳答案

模板助手被设计为由您的模板调用,而不是直接由您的事件处理程序调用。您的代码只是要求执行查询并返回一个值,但它不以任何方式绑定(bind)到您的模板。相反,您应该像这样使用 session 变量:

Template.results.results = function() {
return Products.find({sku: Session.get('itemSku')});
};

然后在您的事件处理程序中,您可以执行以下操作:

Template.search.events({
'keydown input#search': function(event) {
if (event.which === 13) {
var $item = $('#search');
Session.set('itemSku', $item.val());
$item.val('');
}
}
});

请注意,我在这里使用 jQuery 来设置/获取项目值。无论如何,这应该设置 session 变量并重新绘制结果。

关于javascript - 将变量传递给 meteor 应用程序中的 mongodb 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20869777/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com