我想要做的是从服务器获取数据,然后将其全部放入可观察对象中,然后使所有属性可见。我面临的问题是它并没有使我的所有属性都可观察,我需要它们全部都是可观察的,有时取决于数据,它使某些属性可观察,有时却不可见。Knockout JS没有设置可观察的所有成员
var viewModel = this;
viewModel.Model = ko.observable();
viewModel.SetModel = function (data) {
viewModel.Model(ko.mapping.fromJS(data));
}
,我从服务器接收的数据是这样的,例如:normaldata,项(这是具有未知数量元件的阵列)。 因此,如果我尝试访问像viewModel.Model().Items[0]().Layer()
这样的数据,我有时会使用Layer作为函数,有时它是具有可观察元素的普通元素。我希望项目内的所有对象都具有Layer作为函数。
服务器数据例如: 名称: “测试” 项目:[层[ID:132]] 在这个例子中名称,产品ID和可观察但层不是。
小提琴例如: jsfiddle.net/98dv11yz/3 所以问题是,有时该层是空导致KO使得房地产观察到,但有时该酒店有ID和KO仅使子元素观测。问题是,如果在代码中,我希望它是一个函数,所以我总是可以将它视为layer(),因为它现在有时是图层或图层()
该帖子很难理解。请重新阅读并尝试澄清,并尝试添加[mcve]。编辑 – Jeroen
...希望这已经够好了! – xDevil
对不起,恐怕没有太大的帮助。你是否检查过我以前评论的链接?尝试为您的情况创建* runnable *(但最小)repro。从迄今为止发布的内容来看,这似乎是完全可能的。 (另外,如果你注意格式,如果可能的话在你的文章中拼写也会有所帮助;编辑时会有实时预览。) – Jeroen