繁体   English   中英

流星显示/隐藏元素在按钮上单击

[英]Meteor show / hide element on button click

我有一个像这样的模板:

<template name="Menus">
  <button class="btn_create new_menu_toggle"><i class="fa fa-plus"></i> Create a new menu</button>
  <button class="btn_cancel new_menu_toggle"><i class="fa fa-times"></i> Cancel</button>
  {{> NewMenu}}
</template>

我要完成的是,最初只显示btn_create 如果.btn_create被按下时{{> NewMenu}}被渲染并且.btn_create替换btn_deny 反之亦然btn_deny的行为。

我将如何在Meteor中执行此操作,我知道我可以通过在香草Javascript中添加/更改类来完成此操作,但是我想知道使用Meteor / Blaze是否有更简单的方法。

一种简单的模式是使用会话变量来跟踪状态

HTML:

<template name="Menus">
{{#if createMode}}
  <button class="btn_create new_menu_toggle"><i class="fa fa-plus"></i> Create a new menu</button>
  {{> NewMenu}}
{{else}}
  <button class="btn_cancel new_menu_toggle"><i class="fa fa-times"></i> Cancel</button>
{{/if}}
</template>

在您的JavaScript中,您需要设置一些事件处理程序来切换状态:

Template.Menus.events({
  'click .btn_create'(ev){
    session.set('createMode',true);
  },
  'click .btn_cancel'(ev){
    session.set('createMode',false);
  }
});

呈现模板后,您需要初始化会话变量:

Template.Menus.onRendered(function(){
  session.set('createMode',true);
});

最后,您需要模板可以用于空格键条件表达式的帮助程序:

Template.Menus.helpers({
  createMode(){
    return session.get('createMode');
  }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM