用于表单控件的包装组件

时间:2015-06-24 17:18:22

标签: ember.js

我正在寻找一种模式来为表单控件创建一个包装器组件。

其作用:包装任何类型的组件,(处理错误状态,消息)

语法:

{{form-control-group type="my-input" label="Some fancy label:"}}

模板/组件/形状控制group.hbs

{{#if hasError }}
  {{error}}
{{/if}}
{{label}}
{{component type}}

只要我不需要任何属性for my-input组件,它就可以正常工作。通常情况并非如此。假设我需要传递值。我能做到

{{component type value=value}}

但是因为我不想这么灵活。我将使用不同的表单控件,例如:选择,复选框等。它们都需要不同的属性。 我也可以为这些不同的属性做准备:

{{component type 
  value=value
  content=content
  contentPath=contentPath
  disabled=disabled
  checked=checked
  ...
}}

通过这种方式,它只能与准备好的组件一起使用。如果它作为表单插件的一部分发布,并且其消费者希望与数据贴图组件一起使用,则它不会传递属性。

问题:

有没有办法可以将所有传递给 form-control-group 组件的属性流式传输?

也许整个概念都是错误的,并且有一个更好的模式来处理这个问题。任何评论家和/或想法都是最受欢迎的。

修改

要明确:在这个问题中:"setProperties" does not pass "attrs" as expected我试图解决这个问题,传递包含所有属性的attrs哈希值。也许Ember还没准备好,但我确信有一个解决方法。

0 个答案:

没有答案