编辑实际上,它无法在本地运行。看来这个问题确实是我问题的核心所在。
初步
最近我在使我的Knockout映射正常工作时遇到了一些麻烦,但我已经解决了这个问题。这是代码:
我的目标是让两个菜单都能正确呈现,这是我在本地实现的但是还没能在小提琴上重现(最后一个mapping.fromJS没有效果)。
尽管如此,我真正的问题是关于小提琴第13行的console.log
的行为。我最初认为这种行为是我的问题的根源,但由于我已经解决了这个问题,但事实并非如此。
实际问题
有问题的行为是console.log
(小提琴的第13行)输出一个Knockout填充的对象(具有所有奇怪的函数等),正如人们在将其映射到可观察对象后所期望的那样。但是,实际上,console.log只传递了一个对象文字:
var item = {
label: label,
href: obj.data[menu][label],
};
console.log(item);
return item;
实际上,任何对象文字在传递给console.log
时都会产生相同的最终输出,即我最终在Knockout更新映射结束时生成的KO填充的可观察对象之一。 据我所知,实现此行为的唯一要求是item
是一个对象文字,并且它在地图块中return
。
这种行为对我来说似乎完全不可能,尤其是因为所需的功能(w.r.t菜单渲染)正常工作!但是我听说过Javascript中的References,所以也许这就是问题的一部分。