在某些情况下,console.log输出不正确

时间:2013-07-05 08:12:05

标签: javascript knockout.js mapping

编辑实际上,它无法在本地运行。看来这个问题确实是我问题的核心所在。

初步

最近我在使我的Knockout映射正常工作时遇到了一些麻烦,但我已经解决了这个问题。这是代码:

http://jsfiddle.net/akEMe/4/

我的目标是让两个菜单都能正确呈现,这是我在本地实现的但是还没能在小提琴上重现(最后一个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,所以也许这就是问题的一部分。

0 个答案:

没有答案