Javascript 流星反应搜索栏,在未聚焦时显示所有结果
Javascript 流星反应搜索栏,在未聚焦时显示所有结果,javascript,mongodb,meteor,Javascript,Mongodb,Meteor,我试图在我的meteor项目中实现一个简单的搜索选项,但我从来没有任何搜索栏的经验。我的模板当前正在列出集合中的所有元素,我希望我的搜索栏能够反应性地聚合这些结果。 我已经能够通过easy search软件包获得这个结果,但这就是我的问题的开始。使用easy search,除非我开始在搜索框中键入内容,否则我无法获得任何要显示的结果。外部软件包的问题是它们很难编辑,我不知道如何添加这样的选项或自定义搜索栏。 我尝试过使用搜索源程序包,但教程中介绍了特定的程序包搜索,我不知道如何将其调整到我的项目
我试图在我的meteor项目中实现一个简单的搜索选项,但我从来没有任何搜索栏的经验。我的模板当前正在列出集合中的所有元素,我希望我的搜索栏能够反应性地聚合这些结果。
我已经能够通过easy search软件包获得这个结果,但这就是我的问题的开始。
使用easy search,除非我开始在搜索框中键入内容,否则我无法获得任何要显示的结果。外部软件包的问题是它们很难编辑,我不知道如何添加这样的选项或自定义搜索栏。
我尝试过使用搜索源程序包,但教程中介绍了特定的程序包搜索,我不知道如何将其调整到我的项目中。
再一次。我想在我的列表中添加一个搜索栏,但如果我不使用它,我希望列出所有元素,如果没有任何匹配项,则不列出任何元素。检查我放在一起的内容。完整代码如下: client/main.html: client/app.js: server/app.js:
谢谢,这帮了大忙!看起来流星垫破了…流星垫不存在了?
<body>
{{> main}}
</body>
<template name="main">
<div><input id="search" placeholder="Search"></div>
{{> foodList}}
</template>
<template name="foodList">
<ul>
{{#each foods}}
<li>{{name}}</li>
{{/each}}
</ul>
</template>
Foods = new Mongo.Collection('foods');
Template.foodList.helpers({
foods: function () {
var regexp = new RegExp(Session.get('search/keyword'), 'i');
return Foods.find({name: regexp});
}
});
Template.main.events({
'keyup #search': function(event) {
Session.set('search/keyword', event.target.value);
}
});
Meteor.startup(function() {
if (Foods.find().count() === 0) {
Foods.insert({name: 'Blueberries'});
Foods.insert({name: 'Strawberries'});
Foods.insert({name: 'Steak'});
Foods.insert({name: 'Eggs'});
}
});