【发布时间】:2012-03-28 06:28:22
【问题描述】:
我正在尝试使用淘汰映射插件将对象数组映射到 observableArray。 不知何故,这似乎对我根本不起作用。
我刚刚用 Crome 控制台测试验证:
ko.mapping.fromJS( [ { x: 1, y: "test" } ] )
returns:
[]
我做错了什么? 如果我尝试以下
ko.mapping.fromJS( [ { x:1, y: "test" } ][0] )
returns an object containing x and y as observables...
这一切都很好。唯一的区别是我只传递一个对象而不是一组对象。但是,如果我正确阅读了映射插件的文档,它应该能够处理从普通数组创建 observableArray 的问题。
感谢您的帮助,
安德烈亚斯
【问题讨论】:
-
在 Chrome 的控制台中确保您正在查看 observableArray
myObservableArray()的展开值。仅打印 observableArray 本身可能会产生误导。 -
正如 RP 所说...您只是在查看错误的值。这是一个可以用来验证的小提琴。在 ko.mapping 行设置断点并输入:ko.mapping.fromJS(data),你会看到 []。如果你输入:ko.mapping.fromJS(data)(),你会看到 [Object, Object, Object, Object]。 jsfiddle.net/jearles/y4b9e/8
-
谢谢大家,Chrome 欺骗了我,只打印 [] 表示一个空数组。但是你是绝对正确的,如果我在表达式后面加上括号,它就可以显示内容。这么快就拿到cmets真是太好了! Stackoverflow 摇滚...
标签: knockout.js knockout-mapping-plugin