0

我是 Knockout.js 的新手,我创建了一个可观察数组并使用一些数据进行了初始化。我期待任何时候 UI 发生变化(复选框或文本值),模型也应该得到更新。

我也订阅了数组。但我的回调方法永远不会被调用。

var viewModel = {
    seats:ko.observableArray( [
        { "No": "1", "Booked": "" }, ...
    ] )
};

viewModel.seats.subscribe(
    function(newvalue){
        alert(newvalue);
    }
);

ko.applyBindings( viewModel);

http://jsfiddle.net/2NMJX/

4

1 回答 1

3

您刚刚创建了一个可观察数组 - 这意味着,只要数组更新(添加或删除元素,例如:http: //jsfiddle.net/2NMJX/1/),您就会收到通知,但不会在元素本身时收到通知被更新。为此,您需要将值封装在可观察对象中:

seats: ko.observableArray( [
    { "No": ko.observable("1"), ...

然后,您可以订阅这些 observables:

viewModel.seats()[0].No.subscribe( ...

http://jsfiddle.net/2NMJX/2/(尝试编辑“1”)

于 2012-06-27T17:49:40.097 回答