来自文字输入

时间:2016-08-02 09:09:44

标签: meteor

此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>

1 个答案:

答案 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…
  }
});

这样您就不会在模板级别上全局但本地存储状态(即字符数)(这也使您的模板更具可重用性)。

另见: