knockout动态替换可观察数组中的对象

时间:2013-08-08 14:35:51

标签: knockout.js knockout-2.0

我有像

这样的淘汰可观察数组
var viewModel={
       people : ko.observableArray([
            { name: 'Bert' },
            { name: 'Charles' },
            { name: 'Denise' }
        ])};
 ko.applyBindings(viewModel);
使用foreach绑定

我已经在表格中显示了数组 现在我想动态地追逐表的第一行 使用数组索引 我试过(viewModel.people.name[0]("new value");它不起作用

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

observableArray实际上是一个可观察的,具有额外的类似数组的特性,而不是普通的javascript数组。因此,要访问您的数组,您需要先解决observable:

viewModel.people()[0].name = "new value";

修改

如果您希望对数组中某个对象的.name属性进行更改,则会触发对页面的修改,该属性也需要是可观察的。 像这样:

var viewModel={
    people : ko.observableArray([
        { name: ko.observable('Bert') },
        { name: ko.observable('Charles') },
        { name: ko.observable('Denise') }
    ])};

// Update:
viewModel.people()[0].name("new value");