0
IE11で奇妙な問題を助けてくれますか?ラジオボタンをクリックして値を変更することを確認したときに、現実には目に見える拘束が適用されないという主な問題。値が変更されないことを意味します。 IEで検査されたように動作しない理由がわかりません。たとえば、Chromeですべてうまく動作します。ここでIE11でko.protectedObservableの問題
HTML
<p>Send me spam: <input type="checkbox" data-bind="checked: wantsSpam" /></p>
<div data-bind="visible: wantsSpam">
Preferred flavor of spam:
<div><input type="radio" name="flavorGroup" value="cherry" data-bind="checked: spamFlavor, event: { change: onChange }" /> Cherry</div>
<div><input type="radio" name="flavorGroup" value="almond" data-bind="checked: spamFlavor, event: { change: onChange} " /> Almond</div>
<div><input type="radio" name="flavorGroup" value="msg" data-bind="checked: spamFlavor, event: { change: onChange} " /> Monosodium Glutamate</div>
</div>
<span data-bind="visible: isVisible">Text</span>
はJavaScript
ko.protectedObservable = function (initialValue) {
//private variables
var _actualValue = ko.observable(initialValue);
var _tempValue = initialValue;
//computed observable that we will return
var result = ko.computed({
//always return the actual value
read: function() {
return _actualValue();
},
//stored in a temporary spot until commit
write: function (newValue) {
_tempValue = newValue;
}
}).extend({
notify: "always"
});
//if different, commit temp value
result.commit = function() {
if (_tempValue !== _actualValue()) {
_actualValue(_tempValue);
}
};
//force subscribers to take original
result.reset = function() {
_actualValue.valueHasMutated();
_tempValue = _actualValue(); //reset temp value
};
return result; };
var viewModel = function() {
var self = this;
self.wantsSpam = ko.observable(true);
self.spamFlavor = ko.protectedObservable();
self.onChange = function() {
debugger;
var conf = confirm("Do you want change?")
if (conf) {
self.spamFlavor.commit();
}
else {
self.spamFlavor.reset();
}
};
self.isVisible = ko.pureComputed(function() {
if (self.spamFlavor() === "cherry") {
return false;
}
else {
return true;
}
}, this); };
ko.applyBindings(viewModel());
はjsfiddleで私のコードです:
https://jsfiddle.net/stanislavmachel/9s5uw75g/3/
IE11に表示される動作の問題をよりよく理解するために試してください。
ありがとうございます!あなたの答えは私を助けます。 –