Meteor + Blaze:如果在空格键模板中阻塞,则第二次不执行

时间:2015-08-13 21:15:30

标签: meteor meteor-blaze spacebars meteor-helper

目标是在点击事件上动态显示按钮。单击编辑按钮,将显示保存和取消按钮。单击取消按钮时,应显示返回的编辑按钮,该按钮不起作用。我在帮手中使用会话。

template.html

<head>
    <title>ifelse</title>
</head>

<body>
    <h1>Welcome to Meteor!</h1>

    {{> hello}}
</body>

<template name="hello">
    {{isEdit}}

    {{#if isEdit}}
        <div class="saveCancelBtnBarLogic">
            <button class="button">Save</button>
            <button class="cancelEditLogic button">Cancel</button>
        </div>
        {{else}}
        <button class="editDishButtonLogic button">Edit</button>
    {{/if}}
</template>

template.js

if (Meteor.isClient) {

    Template.hello.events({
        "click .editDishButtonLogic": function(event, template) {
            console.log("edit true");

            Session.set("isEditSession", "true");
        }

    });

    Template.hello.events({
        "click .cancelEditLogic": function(event, template) {
            console.log("edit false");
            Session.set("isEditSession", "false");
        }
    });

    Template.hello.helpers({
        isEdit: function() {
            console.log("edit helper : " + Session.get("isEditSession"));
            return Session.get("isEditSession");
        }
    });
}

该项目也部署在@ http://ifelse.meteor.com以供参考。

1 个答案:

答案 0 :(得分:1)

解决:

更改以下行: Session.set("isEditSession", "false");

所以:

Session.set("isEditSession", false);

false是一个布尔值 - 注意false不再是引号。感谢benjick在这里回答@ https://forums.meteor.com/t/if-else-block-in-spacebars-template-not-executing-for-the-second-time/8388/2