我是Knockout.js的新手, 我创建了一个可观察的数组并用一些数据初始化。我希望无论何时更改UI(复选框或文本值),模型都应该更新。
我也订阅了这个数组。但我的回调方法从未被调用过。
var viewModel = {
seats:ko.observableArray( [
{ "No": "1", "Booked": "" }, ...
] )
};
viewModel.seats.subscribe(
function(newvalue){
alert(newvalue);
}
);
ko.applyBindings( viewModel);
答案 0 :(得分:3)
您刚刚创建了一个可观察数组 - 这意味着,无论何时更新数组(添加或删除元素,例如:http://jsfiddle.net/2NMJX/1/),都会收到通知,但不会更新元素本身。要实现这一点,您需要将值封装在observables中:
seats: ko.observableArray( [
{ "No": ko.observable("1"), ...
然后,您可以订阅这些可观察量:
viewModel.seats()[0].No.subscribe( ...
http://jsfiddle.net/2NMJX/2/(尝试编辑“1”)