此Meteor客户端代码使用模板助手返回要显示的文档以及带有类“filterBy”的文本输入,我需要使用它来修改mongodb选择器。
在keyup上,它应该对字符进行计数并应用类型化的字符串,如return myCol.find({myField: myCharacters})
我应该使用Session.set('myChar',jQuery-get-input)然后将其应用于mongodb选择器,还是有更好的方法?谢谢
Template.abc.helpers({
docs: () => {
return myCol.find({});
}
});
<input class="filterBy" type="text">
<template name="abc">
<ul>
{{#each docs}}
<li class={{this.class}} data-id={{this.a}}>{{this.b}} {{this.d}}</li>
{{/each}}
</ul>
</template>
答案 0 :(得分:0)
您可以将值存储在ReactiveVar
:
Template.abc.onCreated(function() {
this.myChar = new ReactiveVar;
});
Template.abc.events({
'keyup .filterBy'(event, instance) {
// Get number of characters…
instance.myChar.set(numberOfCharacters);
}
});
在帮助程序中,获取ReactiveVar
:
Template.abc.helpers({
docs() {
const myChar = Template.instance().myChar.get();
return myCol.find…
}
});
这样您就不会在模板级别上全局但本地存储状态(即字符数)(这也使您的模板更具可重用性)。
另见:
ReactiveVar
,ReactiveDict
和Session
:https://themeteorchef.com/snippets/reactive-dict-reactive-vars-and-session-variables/