我在探索Meteor框架。我在Java EE / JavaServer Faces(JSF)方面有很多经验,但我是JavaScript开发的新手。我正在尝试创建格式正确的“水平形式”,如http://twitter.github.io/bootstrap/base-css.html#forms所述。我的问题是,这为每个输入字段提供了大量重复的HTML,这不是DRY ......
所以,我正在尝试在JSF 2.x中创建类似“复合组件”的构造。这意味着我正在寻找一种方法来调用Meteor-template并替换其中的一些值。
我的模板是这样的:
<template name="formField">
<div class="control-group">
<label class="control-label" for="{{this.id}}">{{this.label}}:</label>
<div class="controls">
{{this.formField}}
</div>
</div>
</template>
通过这样调用它,我能够让它部分工作:
{{> formField labels.x}}
我在这里定义了labels
地图:
Template.myTemplate.labels = {
"x": {id: 'idx', label: 'labelx'},
"y": {id: 'idy', label: 'labely'},
"z": {id: 'idz', label: 'labelz'}
}
问题当然是替换模板中的<input>
- 元素。我尝试了各种方法来做到这一点,但有几个问题:
<input>
- 元素添加到我的formField
- 模板中,但我无法将该value
- 元素的<input>
绑定到JavaScript的属性 - 正在编辑的对象。<input>
- 元素的函数,但最后我会在JavaScript源代码中使用标记代码。另一个问题是我对Template.myTemplate.labels
- 地图并不满意。这似乎是不可避免的,因为我无法使用任何文字值。如果我能够像这样调用模板那将是很好的:
{{> formField idx labelx}}
{{> formField idy labely}}
{{> formField idz labelz}}
总而言之,我基本上有一个问题:使用Meteor / Handlebars创建某种组件的最佳方法是什么?
答案 0 :(得分:0)
表格在路线图上:
https://trello.com/card/easy-forms/508721606e02bb9d570016ae/8
但请特别查看以下讨论:
https://github.com/meteor/meteor/issues/1054(来自上述链接)。
至于在Meteor中创建组件,没有 方法,但您可能想要查看帐户包的工作方式,因为它非常孤立,可扩展,并且形式如下: