【发布时间】:2017-01-11 01:31:33
【问题描述】:
我有一个关于淘汰赛ko.mapping.fromJS 的问题。我知道ko.mapping.fromJS 只不过是让所有属性都可以观察到。但是,当我更改输入字段的值时。即使值如图所示更改,但订阅回调从未触发。任何人都可以帮助我吗? JSFiddle中的代码sn-p。
html:
<tbody>
<!-- ko foreach: notes -->
<tr>
<td class="col-xs-12">
<p data-bind="text: value"></p>
<input type="text" class="form-control" data-bind="value: value" />
</td>
</tr>
<!-- /ko -->
</tbody>
<p data-bind="text: show"></p>
js:
var notes = [
{
"key": "Field1",
"value": "Progress"
},
{
"key": "Field2",
"value": "Plan"
}
];
function NotesModel() {
var self = this;
self.notes = ko.mapping.fromJS(notes, {}, self.notes);
self.show = ko.observable('');
};
var notesModel = new NotesModel();
ko.applyBindings(notesModel);
notesModel.notes.subscribe(function(newValue) {
notesModel.show(JSON.stringify(newValue));
}.bind(notesModel));
【问题讨论】:
-
我的猜测是您订阅了一个数组,但更改了数组中对象中的各个值,因此它不会触发事件