【发布时间】:2015-07-10 00:52:55
【问题描述】:
我对流星很陌生,我可能完全不正确地处理这个问题。
我有一个代表菜单栏的简单模板。当用户单击图标时,应该会出现菜单。当他们再次单击它时,它应该会消失。
这里是标记:
<template name="menu">
<div class="menu">
<div class="toggler">
<i class="fa fa-bars fa-3x"></i>
</div>
<div class="menu-body">
<!-- ... -->
</div>
</div>
</template>
这是我的 JS:
Template.menu.helpers({
self: Template.instance(),
menu_body: self.find('.menu-body'),
toggler: self.find('.toggler'),
currently_open: false,
open: function() {
menu_body.style.display = 'flex';
},
close: function() {
menu_body.style.display = 'none';
},
toggle: function() {
if(currently_open) close();
else open();
}
});
Template.menu.events({
'click .toggler': function(event, template) {
console.log(template);
template.toggle();
}
});
我以为模板实例可以访问辅助函数,但根据日志语句,模板实例包含以下内容:
B…e.TemplateInstance {view: B…e.View, data: null, firstNode: div.menu, lastNode: div.menu, _allSubsReadyDep: T…r.Dependency…}
_allSubsReady: false
_allSubsReadyDep: Tracker.Dependency
_subscriptionHandles: Object
data: null
firstNode: div.menu
lastNode: div.menu
view: Blaze.View
__proto__: Blaze.TemplateInstance
有人可以在这里指出正确的方向吗?如果我做错了,请随时仔细检查。
【问题讨论】:
标签: javascript templates meteor meteor-blaze