我有一个REST服务,它返回包含非规范化数据的集合。例如,它可能如下所示:
root
.
root:CollectionItem[0].alpha
root:CollectionItem[0].beta
root:CollectionItem[0].zappa
.
root:CollectionItem[1].alpha
root:CollectionItem[1].children[0].MoonUnit
root:CollectionItem[1].children[1].Dweezil
root:CollectionItem[1].zappa
.
root:CollectionItem[2].alpha
root:CollectionItem[2].beta
root:CollectionItem[2].zappa对于像这样使用非规范化JSON数据的映射PlugIn,最好的策略是什么?问题是,PlugIn似乎使用CollectionItem作为模板,但是当我预见结果时,当我试图读取root.Collection Item1.beta(不存在)时,Knockout就会崩溃。
编辑#1:我想淘汰赛并不像我想的那么受欢迎.这个问题似乎注定要获得金边草奖。:-(
编辑#2:在淘汰赛论坛http://groups.google.com/group/knockoutjs/browse_thread/thread/6705c222481c7b75#上得到了一个可行的答案,所以我不需要担心又一次的Tumble杂草奖!:-)
发布于 2012-03-19 23:09:38
在淘汰赛JS论坛上,我得到了一个名叫NTB的人的回答。这是他对JS小提琴的解决方案,以防有人感兴趣。我不想回答我自己的问题,但事实就是如此。
http://jsfiddle.net/PxeyY/
以下是他的总结:
“我有时会在调用映射程序之前手动”按摩“数据,或者创建一个虚拟shell对象,该对象将所有可能的属性设置为null (或者在数组中为[] ) --然后使用$.extend(虚拟的,真实的)来创建.fromJS()可以使用的东西。您必须使用该模式遍历数组,但这就是我的$.02。
“不过,我也想听听更清洁的解决方案。”
https://stackoverflow.com/questions/9745092
复制相似问题