在流星应用程序中,我正在尝试创建一个页面,如果按下一个按钮,它会显示一个模板,然后如果按下另一个按钮,它会隐藏相同的模板。我尝试使用附加了侦听器的两个按钮来实现这一点,该按钮将布尔值(称为切换)更改为true或false。 helper方法应该将值true或false返回到if语句,以便显示anotherTemplate但是我收到此错误:
Uncaught ReferenceError: toggle is not defined at object.clickDataActionShow
似乎切换超出了范围?或者完全不同的东西,我无法理解。
有一点需要注意的是,autopublish已被删除,那么它是否有可能成为发布/订阅问题?
这是我的代码:
list.html
<Template name="list">
<div>
<button class="btn btn-info" data-action="show" id="show">Show</button>
<button class="btn btn-danger" data-action="hide" id="hide">Hide</button>
{{ #if toggleGet }}
{{> anotherTemplate}}
{{ /if }}
</div>
</Template>
list.js
Template.list.created=function(){
this.toggle = new ReactiveVar(true);
};
Template.list.helpers(
{
toggleGet: function(){
return Template.instance().toggle.get();
}
}
);
Template.list.events(
{
//Sets toggle to true, shows anotherTemplate
'click [data-action="show"]': function(event, template) {
template.toggle.set(true);
},
//Sets toggle to false, hides anotherTemplate
'click [data-action="hide"]': function() {
template.toggle.set(false);
}
}
);
非常感谢任何帮助,谢谢:)。
答案 0 :(得分:2)
通过onCreated更改您创建的方法,它应该可以工作:)
Template.list.onCreated(function() {
this.toggle = new ReactiveVar(true);
})