2
我有一個關於淘汰賽的問題ko.mapping.fromJS
。我知道ko.mapping.fromJS
不過是讓所有屬性都可觀察。但是,當我更改輸入字段的值時。即使價值改變如上所示,但訂閱回調從未解僱。任何人都可以幫助我嗎?代碼片段JSFiddle。淘汰賽訂閱回調不使用時發射ko.mapping.fromJS
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));
我的猜測是你正在訂閱一個數組,但改變了數組中對象的個別值,所以它不會觸發事件 – Bindrid