0

我试图避免在创建或编辑新项目时相同的表单的重复模板代码。

例如,像这样:

<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(...

但是,那些父模板包装器不会获取主子模板的事件。

有没有办法做我想做的事?

4

1 回答 1

2

那些父模板可以从子模板中获取事件。像这样使用它:

Template.create.events({
  'click .btn':function(){

  }
})

Template.edit.events({
  'click .btn':function(){

  }
})

Template.createOrEdit.events对象中,您保留模板和每个模板使用的事件Template.edit.eventsTemplate.create.events特定代码。

见证明源代码

这种方法非常好,因为您可以通过传递一些变量来自定义表单:

{{# create btnText="create" }}{{/create}}
{{# edit btnText="update" }}{{/edit}}

createOrEdit模板中,您可以使用变量btnText来更改按钮的标签。

于 2014-09-10T21:03:40.430 回答