在淘汰赛的documentation中,它提到optionsAfterRender
。我试图添加data
属性值而没有成功。
以下是doc中的示例:
<select size=3 data-bind="
options: myItems,
optionsText: 'name',
optionsValue: 'id',
optionsAfterRender: setOptionDisable">
</select>
<script type="text/javascript">
var vm = {
myItems: [
{ name: 'Item 1', id: 1, disable: ko.observable(false)},
{ name: 'Item 3', id: 3, disable: ko.observable(true)},
{ name: 'Item 4', id: 4, disable: ko.observable(false)}
],
setOptionDisable: function(option, item) {
ko.applyBindingsToNode(option, {disable: item.disable}, item);
}
};
ko.applyBindings(vm);
</script>
这是我尝试但不起作用但也没有错误。
setOptionDisable: function(option, item) {
$(option).text(''); // this will blank out the text in options
$(option).data('test', '123'); // but this won't do anything at all.
$(option).attr('data-test', '123'); // this worked as pointed out by Matt
}
答案 0 :(得分:2)
jQuery实际上指定了CachedAssemblyCatalog
但它没有显示在data attr
元素上,因为jQuery将其保存在内部数据结构中。
如果您记录最近的数据attr,您将获得该值,但您不会在DOM上看到。
示例:https://jsfiddle.net/kyr6w2x3/83/
但是如果你使用DOM
,它也会更新dom属性。