如何使用Knockout的"attr"数据绑定来处理像"readonly"和"disabled"这样的独立属性,这是推荐的"最佳实践"方法?
这些属性有点特殊,通常将属性值设置为属性名称即可启用它们(尽管许多浏览器在HTML中只包含属性名称而没有任何值时也能正常工作):
<input type="text" readonly="readonly" disabled="disabled" value="foo" />
然而,如果你不想应用这些属性,通常的做法是从HTML中完全省略它们(而不是像使用readonly="false"之类的方法):
<input type="text" value="foo" />
Knockout的“attr”数据绑定不支持这种情况。只要我提供了一个属性名称,就需要同时提供一个值:
<input type="text" data-bind="attr: { 'disabled': getDisabledState() }" />
有没有一种跨浏览器的方法可以关闭“禁用(disabled)”或“只读(readonly)”?或者是否有一个自定义绑定技巧,如果我不想让项目被禁用或只读,我可以使用它来不渲染任何东西?