比方說,你的按鈕是一個模板:
<body>
{{> editButton}}
{{> fields}}
</body>
<template name="editButton">
<a data-icon="plus" data-role="button" class="edit" >edit</a>
</template>
要與流星這樣組裝起來,將事件附加到模板:
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 name="fields">
{{#if editing}}
<input type="text" name="myField"/>
{{/if}}
</template>
Template.fields.editing = function() {
return Session.get("editing");
}
現在:
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將更新相關會話密鑰的值,並且由於Session是反應性的,它將重新運行Template.fields.editing函數並重新顯示字段模板。
要保存用戶輸入的數據,您還可以使用Session。我會讓你自己弄清楚這部分,這和我在這裏寫的代碼非常相似。要持續保存用戶信息,請查看Meteor.user()
和Collections
。