Arm*_*nco 25 html data-binding readonly disabled-input knockout.js
什么是使用Knockout的"attr"数据绑定与"readonly"和"disabled"等独立属性建议的"最佳实践"方法?
这些属性是特殊的,因为它们通常由属性值设置为属性名(虽然很多浏览器正常工作,如果你只是不包含在HTML的任何值的属性名称)启用:
<input type="text" readonly="readonly" disabled="disabled" value="foo" />
Run Code Online (Sandbox Code Playgroud)
但是,如果你不做要应用这些属性,一般的做法是简单地完全从HTML忽略它们(而不是做这样的事情只读="假"):
<input type="text" value="foo" />
Run Code Online (Sandbox Code Playgroud)
Knockout的"attr"数据绑定不支持这种情况.只要我提供属性名称,我还需要提供一个值:
<input type="text" data-bind="attr: { 'disabled': getDisabledState() }" />
Run Code Online (Sandbox Code Playgroud)
是否有跨浏览器方式关闭'禁用'或'只读'?或者是否有一个自定义绑定的技巧,如果我不想禁用该项或使其成为只读,我可以使用它来呈现任何内容?
你也可以像这样为readonly创建一个绑定:
ko.bindingHandlers['readonly'] = {
'update': function (element, valueAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor());
if (!value && element.readOnly)
element.readOnly = false;
else if (value && !element.readOnly)
element.readOnly = true;
}
};
Run Code Online (Sandbox Code Playgroud)
资料来源:https://github.com/knockout/knockout/issues/1100
归档时间: |
|
查看次数: |
21864 次 |
最近记录: |