使用Knockout映射插件消耗非规范化数据
Consuming non-normalized data with the Knockout Mapping Plug-In
我有一个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数据,使用映射插件的最佳策略是什么?问题是插件似乎使用CollectionItem[0]作为模板,但当我预览结果时,当我试图读取根时,Knockout会爆炸。CollectionItem[1].beta(不存在)。
编辑#1:我想淘汰赛并没有我想象的那么受欢迎。。。这个问题似乎注定要获得汤博乐奖-(
编辑#2:在淘汰赛论坛上得到了一个可行的答案http://groups.google.com/group/knockoutjs/browse_thread/thread/6705c222481c7b75#,所以我不必担心另一个汤博乐奖!:-)
我在Knockout JS论坛上得到了一个名为NTB的人的回答。以下是他对JS fiddle的解决方案,以防有人感兴趣。我不想回答我自己的问题,但事实就是这样。
http://jsfiddle.net/PxeyY/
以下是他的总结:
"我有有时在调用映射程序之前手动"按摩"数据,或者创建了一个伪shell对象,该对象的所有可能属性都设置为null(在数组的情况下为[])--然后使用$.extend(dummy,real)创建一些东西。fromJS()可以使用。你必须反复具有该模式的数组,但无论如何,这是我的0.02美元。
"不过我也想听听更清洁的解决方案。"
相关文章:
- 如何添加浮动和非浮动,其他
- 如何从外部页面激活非默认引导选项卡
- 在非我的页面上重新加载CSS
- 生成pdf或其他非html文件时的错误处理
- Protractor:在Iframe中测试非角度应用程序
- 在php中提交数据时,如果某些值为null,而某些值为非null,如何进行查询
- 承诺在非节点式回调上使用Bluebird
- Html/Javascript-如何屏蔽除英国以外的所有欧盟国家,并允许所有非欧盟国家
- 使用jQuery上传非拉丁名称文件
- 组合承诺和非承诺值
- 使用纯javascript而非jquery使所选选项卡处于活动状态并保持非活动状态
- 如何在Mocha/Chai中测试JS原型(非模块)
- 流星.js - 是否应该对数据进行非规范化
- elasticsearch:保留冗余(非规范化)数据或保留 id 列表以进行交叉引用
- 规范化与非规范化,当使用带有 JAVA/RDBMS 堆栈的 JSON 客户端时
- 流星 / 蒙戈 - 您如何引用查找集合?(非规范化与规范化)
- 使用Knockout映射插件消耗非规范化数据
- 在react redux中,非规范化数据如何导致问题?
- 使非规范化的JSON具有层次结构
- JavaScript中的程序化重音降低(也称为文本规范化或非重音)