バインディング ハンドラーと HTML。
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>
更新機能にヒットすると、ラジオグループ要素の選択された属性を手動で更新すると、すぐに「選択」に変わります。
$(要素).attr('選択', '0');
$(element).attr('selected') は常に「選択済み」です。
値が保持されない理由がわかりません。