MeteorJS.On 刷新页面搜索结果丢失

MeteorJS.On refreshing a page the search results get lost

我正在为我的 webapp.On 使用搜索框点击搜索按钮,用户被定向到 'searchresults' 页面,结果是 displayed.But 刷新页面时搜索结果是lost.How 我可以使用会话恢复它们吗? HTML代码是:

<div class="form-group">
        <input type="text"  class="form-control" id='searchbox' placeholder="Search">
</div>

js代码为:

 Template.navigation.events({
    'submit form':function(event){
        event.preventDefault();
        var searchbox=document.getElementById('searchbox').value;
        Router.go('/posts/search/'+searchbox);
    }
    });

    Template.searchresults.helpers({
        'post':function(){
            var searchbox=document.getElementById('searchbox').value;
            var search=new RegExp('\b'+searchbox+'\b','i');
            return Posts.find({name:search});
        }
    });

routerjs 代码是:

Router.route('/posts/search/:somesearch/',{
    template:'searchresults',
    name:'searchresults',


});

我们不使用辅助函数,而是在您的路由中设置数据上下文:

Router.route('/posts/search/:somesearch/',{
  template:'searchresults',
  name:'searchresults',
  data: function(){
    return Posts.find({ name: this.params.somesearch });
  } 
});

完全删除您的 post 模板助手。

在您的 HTML 模板中,您需要使用 {{#each this}} 进行迭代,因为 this 将是 cursor 返回的 data路由器中的函数。

请注意,对于多词搜索和特殊字符,您需要 url-encode/decode 搜索字符串。