【问题标题】:Meteor: Setting handlebars variable true/falseMeteor:设置车把变量真/假
【发布时间】:2016-02-16 02:47:45
【问题描述】:

我对整个车把概念还是很陌生,但基本上我希望能够在单击按钮时将变量设置为 true,然后通过在模板中提交仅在以下情况下显示的表单再次返回 false变量为真。

对于正文,我有以下代码:

<body>
{{#if notification}} 
    {{> notifier}}
{{else}}
    {{#if currentUser}}
        {{> dashboard}}
    {{else}}
        {{> login}}
    {{/if}}
{{/if}}
</body>

假设我在仪表板中有一个链接,该链接在客户端 js 中运行,id 为 noticationTestLink,我将在仪表板事件中放入以下功能:

'click #noticationTestLink' : function(event) {
   event.preventDefault();
}

如果我想将 notification 变量设置为 true(这是我在正文中引用的通知)。

如果我知道该怎么做,我很确定我可以弄清楚其余部分。请原谅我缺乏使用车把的经验/知识。我对使用 Meteor 也很陌生。提前致谢!

PS:我可能完全走错了路,但这就是我问这个问题的原因。

【问题讨论】:

    标签: javascript variables if-statement meteor handlebars.js


    【解决方案1】:

    很难相信还没有人回答过这个问题!

    js:

    'click #noticationTestLink' : function(event) {
       event.preventDefault();
       Session.set('notification',true);
    }
    
    Template.myTemplate.helpers({
      notification: function(){
        return Session.get('notification');
      }
    });
    

    你需要一个模板,Meteor 会自动用&lt;body&gt;...&lt;/body&gt; 包裹它:

     <template name="myTemplate">
       {{#if notification}} 
         {{> notifier}}
       {{else}}
         {{#if currentUser}}
           {{> dashboard}}
         {{else}}
           {{> login}}
         {{/if}}
       {{/if}}
     </template>
    

    【讨论】:

    • 谢谢,经过一番搜索,最终自己弄清楚了。我的方法涉及使用 Template.body.helpers ({...});这也有效,而不是将其放入主模板中,稍后会咬我吗?
    • 一旦您开始拥有更多模板,就可以。您还需要一个路由器(流量路由器或铁路由器)。
    猜你喜欢
    • 1970-01-01
    • 2013-11-21
    • 2023-03-25
    • 2020-06-15
    • 1970-01-01
    • 2016-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多