假设您的按钮在模板中:
<body>
{{> editButton}}
{{> fields}}
</body>
<template name="editButton">
<a data-icon="plus" data-role="button" class="edit" >edit</a>
</template>
要将其与 Meteor 连接起来,请将事件附加到模板:
Template.editButton.events({
"click [data-role='button']": function(e) {
if ($(e.target).text() == "edit")
$(e.target).text("save");
else
$(e.target).text("edit");
}
});
当您单击它时,它将切换按钮的文本。那么显示或隐藏相关字段呢?我们可以使用Session
:
Template.editButton.events({
"click [data-role='button']": function(e) {
if ($(e.target.text() == "edit") {
$(e.target).text("save");
Session.set("editing", true);
}
else {
$(e.target).text("edit");
Session.set("editing", false);
}
}
});
现在您需要监听 的值editing
并使用它来告诉 Meteor 是否应该显示相关字段:
<template name="fields">
{{#if editing}}
<input type="text" name="myField"/>
{{/if}}
</template>
Template.fields.editing = function() {
return Session.get("editing");
}
现在,当您单击按钮时,Meteor 将更新关联的 Session 键的值,并且由于 Session 是响应式的,它将重新运行 Template.fields.editing 函数并重新渲染字段模板。
要保存用户输入的数据,您还可以使用 Session. 我会让你自己弄清楚那部分,它与我在这里编写的代码非常相似。要永久保存用户信息,请查看Meteor.user()
和Collections
。