如何使用输入助手(或自定义TextField)来readonly bind-attr

时间:2014-01-27 20:54:07

标签: ember.js

我有一个像这样的自定义输入助手

{{input value=document.description}}

我想要一种绑定另一个属性的方法,如readonly或disabled。问题是我只想在“完成”状态下显示readonly。否则我甚至无法显示readonly / disabled这个词。

我已尝试在readonly上执行bind-attr但它总是在html中显示该属性(因此我的输入在我有机会编辑之前被禁用)

{{input value=document.description readonly=document.readonly}}

是否可以在输入助手中执行类似这样的操作?

{{input value=document.description readonly="controller.disabledInput:readonly"}}

3 个答案:

答案 0 :(得分:1)

虽然这不是我希望的bind-attr解决方案,但这是我最终的结果

{{#if foo.complete}}
  {{foo.description}}
{{else}}
  {{input class="editable" value=foo.description}}
{{/if}}

答案 1 :(得分:0)

在黑暗中拍摄,如果你这样做,它会起作用吗?

Ember.TextField.reopen({
  attributeBindings: ['readonly']
});

然后使用您原来的绑定方法。有一点我不确定,这可能会覆盖已经指定的attributeBindings here

答案 2 :(得分:0)

我知道这个问题已经过时了,但我遇到了类似的问题,并且遇到了这个问题。

你真的很接近你原来的方法,它只需要两个改变。首先,删除readonly属性周围的引号。然后,某些属性(如readonlydisabled)需要true / false值 - 而不是像“readonly”和“disabled”这样的字符串。所以,这是工作代码:

{{input value=document.description readonly=document.readonly}}