Цель состоит в том, чтобы динамически отображать кнопки в событии кликов. При нажатии кнопки редактирования отображаются кнопки сохранения и отмены. При нажатии кнопки «Отмена» кнопка редактирования должна отображаться обратно, которая не работает. Я использую сессию в помощнике.Meteor + Blaze: если блок else в шаблоне пробелов не выполняется во второй раз
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 для справки.
это потому, что изменение 'isEdit' не повторно отображает шаблон. Загляните в [template_autorun] (https://docs.meteor.com/#/full/template_autorun) и пользовательские «реактивные переменные», чтобы повторно отобразить шаблон при обновлении переменной сеанса. –
@ guranjan-singh Не уверен, почему он работает в первый раз. При нажатии кнопки редактирования кнопки сохранения и отмены отображаются с использованием той же логики и переменной сеанса. Однако при нажатии кнопки отмены она не работает. Кроме того, переменные сеанса являются реактивными. Этот пример не включает пользовательские переменные. – roray