我正在尝试为组件attr设置数据绑定,当我这样做时,我的属性返回一个字符串。我有一个自定义组件类:
App.EditableTextComponent = Ember.Component.extend({
attributeBindings: ['contenteditable'],
isEditable: true
});
而且,我的车把模板:
<span class="editable-text" {{bind-attr contenteditable=isEditable}}>{{content}}</span>
每当我渲染此模板时,如果isEditable为true,它将呈现:contenteditable="contenteditable"
而不是contenteditable
,如此处http://emberjs.com/guides/templates/binding-element-attributes/中的示例所示。
如果我将isEditable属性设置为字符串“true”,我可以使用此示例,但这似乎不正确,因为它应该是在其他地方使用的布尔值。如何在不将属性设置为字符串的情况下使此数据绑定工作?
答案 0 :(得分:1)
App.EditableTextComponent = Ember.Component.extend({
attributeBindings: ['contenteditable'],
isEditable: true,
contenteditable: function() {
return this.get('isEditable') ? 'true' : 'false';
}.property('isEditable')
});
用法:
{{editable-text isEditable=true}}
{{editable-text isEditable=false}}