1

我正在探索 Meteor 框架。我在 Java EE / JavaServer Faces (JSF) 方面有很多经验,但我是 JavaScript 开发的新手。我正在尝试创建一个格式良好的“水平表单”,如http://twitter.github.io/bootstrap/base-css.html#forms中所述。我的问题是,这为每个输入字段提供了很多重复的 HTML,这不是 DRY ...

所以,我试图在 JSF 2.x 中创建一个类似“复合组件”的结构。这意味着我正在寻找一种方法来调用 Meteor 模板并替换其中的一些值。

我的模板是这样的:

<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>模板中的 - 元素。我尝试了各种方法来做到这一点,但有几个问题:

  • 我可以将-element 添加<input>到我的formField-template 中,但是我无法将该 -element 的 绑定value<input>正在表单中编辑的 JavaScript 对象的属性。
  • 我可以创建一个返回<input>-element 的函数,但我最终会在我的 JavaScript 源中使用标记代码。

另一个问题是我对Template.myTemplate.labels-map 不是很满意。这似乎是不可避免的,因为我无法使用任何文字值。如果我能够像这样调用模板会很好:

{{> formField idx labelx}}
{{> formField idy labely}}
{{> formField idz labelz}}

最后,我基本上有一个问题:用 Meteor/Handlebars 创建某种组件的最佳方法是什么?

4

1 回答 1

0

表格在路线图上:

https://trello.com/card/easy-forms/508721606e02bb9d570016ae/8

但特别是看看这个讨论:

https://github.com/meteor/meteor/issues/1054(来自上面的链接)。

至于在 Meteor中创建组件,没有办法做到这一点,但您可能想查看帐户包是如何工作的,因为它非常独立、可扩展和表单:

https://github.com/meteor/meteor/tree/master/packages

于 2013-06-17T13:46:58.620 回答