【问题标题】:meteor load template based on button click基于按钮单击的流星加载模板
【发布时间】:2016-01-06 16:34:15
【问题描述】:

我试图加载基于按钮单击的模板。这就是我目前所拥有的。

.html:

    <header>
      <h1>REQ Form</h1>
</header>
<div class="container">
      <button id= "addjob"> ADD TASK </button> 
      {{#if addjob }}
      {{> reqformtask}}
      {{else}}
      {{/if}}

    </div>

</template>

<template name= "reqformtask">

    <form class="new-task">
     some form info 

</form>

   </template> 

.JS 文件:

 Template.reqform.events({
"click .addjob": function (event) {
    event.preventDefault(); 
    session.set ('reqformtask',true);

}}); 

谁能告诉我我哪里出错了或指向我的资源?

【问题讨论】:

    标签: templates meteor onclick


    【解决方案1】:

    您需要在{{#if addjob}} 中调用的助手。它可能看起来像这样:

    Template.reqform.helpers({
        addjob : function () {
           return Session.get ('reqformtask');
        }
    }); 
    

    为按钮 ID 和助手使用不同的名称也会更清楚。

    请注意,您需要Session,而不是session。第一个字母应该大写。

    另外,正如@Michel Floyd 所指出的,您的事件选择器是错误的:它应该是"click #addjob"(寻找id)而不是"click .addjob"(寻找class

    最后,如果您需要您的按钮来切换模板,请将您的点击事件替换为:

    Template.reqform.events({
       "click #addjob": function (event, template) {
            event.preventDefault(); 
            Session.set ('reqformtask',!Session.get ('reqformtask'));
       }
    }); 
    

    【讨论】:

    • 此外,事件需要附加到"click #addjob" 而不是"click .addjob"
    猜你喜欢
    • 2014-02-01
    • 2017-11-30
    • 1970-01-01
    • 1970-01-01
    • 2012-11-24
    • 2019-07-30
    • 2023-04-10
    • 1970-01-01
    • 2019-07-16
    相关资源
    最近更新 更多