Javascript 在Meteor JS中使用Blaze进行实时搜索时取消选中复选框

Javascript 在Meteor JS中使用Blaze进行实时搜索时取消选中复选框,javascript,meteor,meteor-blaze,Javascript,Meteor,Meteor Blaze,我正在尝试用Meteor JS模拟一个实时搜索(顺便说一句,任务异常艰巨!) 这在client.js中: Template.newDiagnostic.events({ "keyup .entry-search": function(e) { Session.set("search-query", e.currentTarget.value) } }) Template.registerHelper("searchQuery", function(value){

我正在尝试用Meteor JS模拟一个实时搜索(顺便说一句,任务异常艰巨!)

这在
client.js中:

Template.newDiagnostic.events({
    "keyup .entry-search": function(e) {
        Session.set("search-query", e.currentTarget.value)
    }
})
Template.registerHelper("searchQuery", function(value){
    var query = new RegExp(Session.get("search-query"))
    return query.test(value)
})
Template.newDiagnostic.helpers({
    symptoms: function() {
        return Symptoms.find({})
    }
})
基本上,我有一个事件,观察搜索输入中的keyup,更改会话变量。 接下来,我注册了一个助手来检查给定的字符串是否与该会话变量匹配(RegExp)。 最后,助手仅提供数据

然后,我的HTML中有以下内容:

<template name="newDiagnostic">
<input type="text" class="form-control entry-search" placeholder="Filtrar por nome">
    {{#each symptoms}}
        {{#if searchQuery name}}
            <div class="checkbox">
                <label>
                    <input class="checkbox-symptoms" type="checkbox" value="{{_id}}"> {{name}}
                </label>
             </div>
        {{/if}}
    {{/each}}
</template>

{{{#每个症状}
{{#如果搜索查询名称}
{{name}}
{{/if}
{{/每个}}
在这里,我尝试过滤(隐藏)不在查询中的条目

到目前为止,模拟实时搜索工作正常:您在输入文本中键入一些内容,条目将被过滤。 问题是当您搜索某个内容并检查条目时。 然后,如果您搜索另一个术语并检查该术语,您的第一个选中条目将消失。 我不要这种行为。 我想搜索一个条目,检查它,搜索另一个条目,也检查它,等等

我认为这个问题与重新加载模板有关,但我不知道如何使其工作。 我曾考虑将选中的条目保存在会话变量中,但这将是我的最后一个选项。
我也尝试过
matteodem:easy search
,但同样的问题也发生了。

为什么不获取当前的“已检查”值,存储在每个用户的数组中,并显示在不同的“{{each}}”上,然后在复选框列表下显示它们,如“checked by you”或类似的东西,@Ethaan。谢谢你的回复。我希望避免保存选中的条目以供以后查阅。。。我首先在寻找一个更“本地”的解决方案,即只使用blaze或模板本身的解决方案。但是,当然,如果这是不可能的,我将硬编码一个解决方案,将选中的条目保存在会话变量或类似的东西中。无论如何,谢谢你。