将 Knockout 的“attr”数据绑定(bind)与“readonly” 和“disabled” 等独立属性一起使用的“最佳实践”建议是什么>?
这些属性特殊因为它们通常通过将属性值设置为属性名称来启用(尽管如果您只在 HTML 中包含没有任何值的属性名称,许多浏览器工作正常):
<input type="text" readonly="readonly" disabled="disabled" value="foo" />
但是,如果您不希望应用这些属性,一般的做法是简单地将它们从 HTML 中完全省略(而不是做类似 readonly="false"的事情):
<input type="text" value="foo" />
Knockout 的“attr”数据绑定(bind)不支持这种情况。只要我提供了一个属性名称,我还需要提供一个值:
<input type="text" data-bind="attr: { 'disabled': getDisabledState() }" />
是否有一种跨浏览器的方式来关闭“已禁用”或“只读”?或者是否有一个自定义绑定(bind)的技巧,如果我不希望该项目被禁用或设为只读,我可以使用它来不呈现任何内容?
最佳答案
Knockout 的“attr”数据绑定(bind)确实支持这种情况,只需从您的 getDisabledState()
函数返回 null
或 undefined
然后它不会发出属性。
演示 Fiddle .
关于html - knockout attr 与 'readonly' 和 'disabled' 等属性的绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14165213/