绑定处理程序和HMTL。
ko.bindingHandlers.radioGroupChanged = {
init: function (element, valueAccessor, allBindingAccessor, viewModel, bindingContext) {
var value = valueAccessor();
var newValueAccessor = function () {
return {
change: function () {
var selectedValue = $(element).attr('selected');
value(selectedValue);
}
}
};
ko.bindingHandlers.event.init(element, newValueAccessor, allBindingAccessor, viewModel, bindingContext);
},
update: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
$(element).attr('selected', valueAccessor()());
}
}
<paper-radio-group style="position:absolute; left:160px; top:0px;" data-bind="radioGroupChanged: MessagePriority" }">
<paper-radio-button label="High">
</paper-radio-button>
<paper-radio-button label="Medium">
</paper-radio-button>
<paper-radio-button label="Low">
</paper-radio-button>
</paper-radio-group>
当它点击更新功能时,如果我手动更新无线电组元素的所选属性,它会立即变为“选择”。
$(element).attr('selected','0');
然后$(元素).attr('selected')总是被“选中”。
我不知道为什么它没有保留价值。
答案 0 :(得分:0)
selected
属性并不意味着指示选择哪个元素,仅描述初始状态。 DOM元素上的实际selected
属性保存此信息。因此,在您的情况下,您将执行以下操作:
element.selected = valueAccessor();
或阅读:
if(element.selected == 1) alert("Yeah Medium was selected");
希望有所帮助。