我试图避免在创建或编辑新项目时避免使用重复的模板代码。
例如,像这样:
<template name="createOrEdit">
<form role="form">
<div class="form-group">
<input type="text" class="form-control" id="title" placeholder="Title"/ value="{{title}}">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
</template>
<template name="create">
{{> createOrEdit}}
</template>
<template name="edit">
{{> createOrEdit}}
</template>
然后,我可以创建单独的模板处理程序:
Template.create.events(...
Template.edit.events(...
但是,这些父模板包装器无法获取主子模板的事件。
有办法做我想做的事吗?
答案 0 :(得分:2)
这些父模板可以从子模板中获取事件。像这样使用它:
Template.create.events({
'click .btn':function(){
}
})
Template.edit.events({
'click .btn':function(){
}
})
在Template.createOrEdit.events
对象中,您可以保留两个模板以及每个模板的Template.edit.events
和Template.create.events
特定代码所使用的事件。
这种方法非常好,因为您可以通过传递一些变量来自定义表单:
{{# create btnText="create" }}{{/create}}
{{# edit btnText="update" }}{{/edit}}
在createOrEdit
模板中,您可以使用变量btnText
来更改按钮的标签。