meteor,动态更改模板辅助数据
我有一个小疑问,是否可以动态更改模板帮助器数据 这是我的模板meteor,动态更改模板辅助数据,meteor,Meteor,我有一个小疑问,是否可以动态更改模板帮助器数据 这是我的模板 {{#each post}} <h4>{{postyname}}</h4> <h4>{{Headline}}</h4> <h4>{{Location}}</h4> {{/each}} 它在我的主页中显示结果,我在页面顶部有搜索栏,每当用户单击搜索按钮时,必须呈现相同的模板,但根据用户搜索使用不同的数据 我在我的onclick事件中尝试过这样的方式,但似乎不起作用
{{#each post}}
<h4>{{postyname}}</h4>
<h4>{{Headline}}</h4>
<h4>{{Location}}</h4>
{{/each}}
它在我的主页中显示结果,我在页面顶部有搜索栏,每当用户单击搜索按钮时,必须呈现相同的模板,但根据用户搜索使用不同的数据
我在我的onclick事件中尝试过这样的方式,但似乎不起作用
'onclick #searchBtn':function()
{
var all_posts=posts.find({'Headline': search},{sort: {createdAt: -1}}).fetch();
Template.postDisplay.post=function(){
return all_posts;
}
如何做到这一点?我相信使用是您想要使用的:
在js文件的顶部创建一个变量
var _deps = new Tracker.Dependency;
var searchCriteria = {};
在助手中:
post:function() {
_deps.depend(); // creates a dependency between the accessor of "post" and the _deps
posts.find(searchCriteria,{sort: {createdAt: -1}}).fetch();
}
在按钮上单击:
'onclick #searchBtn':function() {
searchCriteria = {'Headline': search};
_deps.changed(); // notifying everyone that is dependent on _deps that it has changes
}
根据我从你的问题中看到的情况,我认为这应该能解决你的情况。如果我误解了您的问题,请告诉我。为什么不使用会话变量呢?它们是反应性的,正是你所需要的 使用Session.set和Session.get将自动注册和激发依赖项,而不是手动处理依赖项
post:function()
{
var searchCriteria = Session.get("searchCriteria") || {};
posts.find(searchCriteria,{sort: {createdAt: -1}}).fetch();
}
'onclick #searchBtn':function()
{
Session.set("searchCriteria", {'Headline': search});
}
在热代码重新加载后,会话变量也将被保留。变量不会。工作和职位之间的相关性是什么?我只是很难看到你的助手与你的点击按钮之间的关系。您希望帖子或作业是动态的(或两者都是)?@Firo,抱歉编辑了这个问题这是关于StackOverflow上Meteor最重要的答案,非常感谢!顺便说一下,
Deps.Dependency代码>已弃用,您可以使用Tracker.Dependency代码>取而代之。
post:function()
{
var searchCriteria = Session.get("searchCriteria") || {};
posts.find(searchCriteria,{sort: {createdAt: -1}}).fetch();
}
'onclick #searchBtn':function()
{
Session.set("searchCriteria", {'Headline': search});
}