观察在KnockoutJS中观察到的数组的属性

har*_*ino 9 model-view-controller templates observable knockout.js

我正在研究ASP.Net MVC应用程序.我的操作是返回一个视图,其中的模型是一个对象数组(一个具有Name,ID,IsViewable等属性的类).

var model = @Model.ToJson(); // done via extension call
Run Code Online (Sandbox Code Playgroud)

我想观察这个数组,所以每当它改变时我都可以更新一个绑定到模板的表.

var viewModel = {
    accounts = ko.observableArray(model)
}
Run Code Online (Sandbox Code Playgroud)

这适用于添加和删除数组中的元素.但是,我还希望模板在其中一个帐户中的属性更改时更新(即名称或ID).

在KnockoutJS网站上,它说:当然,如果你愿意,你可以观察这些属性,但这是一个独立的选择.这是我无法弄清楚该怎么做的.

我试过这样的事情但没有用:

var viewModel = {
    accounts = ko.oservableArray([])
}

for(var i = 0; i < model.length; i++) {
    ko.observableArray(model[i]);
    viewModel.accounts.push(model[i]);
}
Run Code Online (Sandbox Code Playgroud)

如果需要,我可以发布模板和表格.

Ser*_*los 4

你应该研究一下knockout.mapping插件。我认为它可以满足您想要做的一切。