Ember 中是否有支持 Ember.Array / Ember.Enumerable 的键值对象?
我想{{#each}}
在我的 Handlebars 模板中迭代它们。
我的用例是显示来自服务器的任意 JSON(用户定义字段)(示例如下)。我可以从嵌套数组递归地创建视图(使用each
助手),但我不能迭代一个对象。我的计划是找到(或编写)一个可以包装 JSON 对象并允许它们可枚举的对象。这样做的最佳方法是什么?
到目前为止,我的想法是将扩展/混合Enumerable/Array/ArrayProxy/ObjectProxy
、将底层键值存储存储为Ember.Array
以及添加一个keys
字段来存储对象的键的组合。然后我可以使用setUnknownProperty
andunknownProperty
设置/获取基础值并保持keys
同步。这种方法合理吗?
来自服务器的 JSON 格式
这是一个示例(用户记录他们自己的锻炼数据)。请注意,这只是一个示例;格式是完全灵活的,所以我不能创建 Ember 数据模型来建模这些用户定义的字段。总体而言,数据可以是任意复杂的 JSON(散列、数组、原语的任何嵌套程度)
{
"bench_press":[
{
"weight":95,
"repetitions":5,
"tags":[
"warmup"
]
},
{
"weight":135,
"repetitions":3,
"tags":[
"warmup"
]
},
{
"weight":155,
"repetitions":3,
"tags":[
"warmup"
]
},
{
"weight":165,
"repetitions":2,
"tags":[
"warmup"
]
},
{
"weight":185,
"repetitions":1,
"tags":[
"warmup"
]
},
{
"weight":195,
"repetitions":1,
"tags":[
"warmup",
"overshoot"
]
},
{
"weight":190,
"repetitions":5,
"tags":[
]
},
{
"weight":190,
"repetitions":5,
"tags":[
]
},
{
"weight":190,
"repetitions":5,
"tags":[
]
},
{
"weight":190,
"repetitions":3,
"tags":[
]
},
{
"weight":190,
"repetitions":2,
"tags":[
"negatives"
]
}
]
}