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 搜索字符串。
我正在为我的 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 搜索字符串。