Javascript 使通过ko.mapping.fromJS创建的可观察数组没有可观察元素

Javascript 使通过ko.mapping.fromJS创建的可观察数组没有可观察元素,javascript,knockout.js,Javascript,Knockout.js,使用ko.mapping.fromJS()创建的可观察数组具有可观察元素。如何使其行为更像ko.observableArray(),其中数组是可观察的,但数组的元素不是?谢谢。您可以使用映射插件创建选项。从ko文档()中: 在此示例中,“子”数组将像可观察数组一样映射,其中属性是不可观察的。您可以使用 var model = ko.observableArray(ko.toJS(data)); 这将使顶级元素成为可观察数组,但子数组将保持普通数组且不可观察。我不确定这是否是你想要的。Hmm,不

使用ko.mapping.fromJS()创建的可观察数组具有可观察元素。如何使其行为更像ko.observableArray(),其中数组是可观察的,但数组的元素不是?谢谢。

您可以使用映射插件创建选项。从ko文档()中:

在此示例中,“子”数组将像可观察数组一样映射,其中属性是不可观察的。

您可以使用

var model = ko.observableArray(ko.toJS(data));

这将使顶级元素成为可观察数组,但子数组将保持普通数组且不可观察。我不确定这是否是你想要的。

Hmm,不是为了成为一个聪明的傻瓜,但是你是否考虑过不为你的模型腿使用映射插件?这就像插件的主要目的一样。谢谢你的回复。我已经考虑过这一点,但是viewmodel有点大(不仅仅是这个数组),并且显式地映射出可观察对象是一件痛苦的事情。在最坏的情况下,这是一个选择,但如果有一个更简单的方法,我想知道。你可以详细阐述一下,也许添加一些代码与你尝试或想写的,添加一些细节,为什么你想这样做,等等?非常感谢你。很抱歉在发布.Np之前没有充分阅读文档,很高兴我能提供帮助:)Hi Hitezh。您是说在调用ko.mapping.fromJS()之后手动将属性分配给ObservalArray吗?上面的代码只会生成ObservalArray,即您可以“观察”数组中添加和删除的对象。如果希望对数组中对象的属性进行双向绑定,这将不起作用。
var model = ko.observableArray(ko.toJS(data));