如何扩展EmberJS手柄输入助手以支持没有值的属性?

时间:2013-11-29 21:25:50

标签: javascript ember.js handlebars.js

我目前正在使用Ember输入助手来呈现数据绑定表单控件:

{{input class="form-control" type="email" value=email }}

这将生成以下HTML:

<input id="ember502" class="ember-view ember-text-field form-control" type="email" value="person@example.com">

HTML 5输入控件支持元素上的必需属性。此属性没有值。尝试将值传递给模板会导致编译错误,并且使用required=true之类的内容将无法正常运行,因为该属性不为空。

如何修改ember TextInput视图以包含没有值的属性?我试图将其子类化,但API阻止了直接访问。

2 个答案:

答案 0 :(得分:8)

默认情况下,ember不会映射传递给输入视图助手的所有选项,如html属性。您可以使用attributeBindings实现此目的。

Ember.TextSupport.reopen({
    attributeBindings: ['required']
});

看看这个小提琴,看看这个行动http://jsfiddle.net/marciojunior/hRx5E/

答案 1 :(得分:0)

在我的情况下,仅使用attributeBindings没有帮助。我想在a标记中添加一个空的下载 HTML属性,但它已被跳过。我必须要做的是我还需要将download属性设置为空字符串。

在这种情况下,请尝试使用而不是:

Ember.TextSupport.reopen({
    attributeBindings: ['required']
});

这个片段:

Ember.TextSupport.reopen({
    attributeBindings: ['required']
    required: ''
});

也许它会有所帮助; - )