Ember guide on binding data attributes表示“如果您使用数据绑定与布尔值,它将添加或删除指定的属性。”我试图使用此功能在<option>
上动态设置selected
属性。我发现我可以动态设置disabled
属性,但selected
属性总是被忽略,不管布尔值是true还是false。如何动态设置'<option>`标签上的`selected`属性?
鉴于这种车把模板:
<option disabled={{false}} selected={{false}}>One</option>
<option disabled={{true}} selected={{true}}>Two</option>
我得到以下HTML:
<option>One</option>
<option disabled>Two</option>
为什么不selected={{true}}
产生渲染输出selected
属性?
为了给出更多的上下文,我正在关注How to do a select in Ember 2.0上的这篇文章。使用该文章中描述的方法,当选择onchange
事件触发时,我可以成功更新控制器中的数据,但DOM不会更新以反映更改。
我已经放在一起this ember-twiddle,其中包括两个select
元素。一个使用select={{bool}}
,这不符合我的要求。另一个使用长手{{#if bool}}...{{else}}...{{/if}}
,它确实有效,但看起来很糟糕。
'selected'是一个属性,不是属性值 – Sonny
是否硬编码“{{true}}”和“{{false}}”的问题?你的例子有点做作。您可以硬编码“selected”属性的存在或不存在,而不是硬编码“{{true}}”和“{{false}}”。 –
@ChrisPeters我承认使用'{{true}}'和'{{false}}'看起来很有意思,但我想保持简单。如果'{{}}引用了返回“true”或“false”的计算属性,结果将是相同的。 – nelstrom