Jam*_*rpe 3 javascript knockout.js
我们在应用程序中大量使用 Knockout.js,但遇到了新的场景。它围绕,但似乎是导致问题的ko.toJSON底层。ko.toJS
我们有一个具有许多属性的对象,其中之一是其他对象的数组。运行完后ko.toJS,它变成一个对象,每个属性都给出原始索引的名称。我无法在测试代码中复制这一点 - 实际上ko.toJS在我的其他测试中正确地将数组保留为数组。
ko.toJS错误并将其转换为对象的示例:

ko.toJS正确处理并将其保留为数组的示例:

任何关于为什么ko.toJS可能导致这种情况或下一步要看什么的想法都值得赞赏......!
更新
当使用淘汰赛的调试器版本时,它是如何报告数组被传递到mapJsObjectGraph的:

这是淘汰赛中的一个错误。一个问题已经被提出。
解决方法是更改上面提到的函数 mapJsObjectGraph 中的行:
var outputProperties = rootObject instanceof Array ? [] : {};
Run Code Online (Sandbox Code Playgroud)
对此:
var outputProperties = toString.call(rootObject) === "[object Array]" ? [] : {};
Run Code Online (Sandbox Code Playgroud)
instanceof根据错误报告,这似乎并不是淘汰赛中唯一使用的地方。
| 归档时间: |
|
| 查看次数: |
523 次 |
| 最近记录: |