Ember中是否有支持Ember.Array / Ember.Enumerable的键值对象?
我想在我的手柄模板中使用{{#each}}
来迭代它们。
我的用例是从服务器显示任意JSON (用户定义字段)(下面给出的示例)。我可以递归地从嵌套数组(使用each
助手)创建视图,但不能迭代对象。我的计划是查找(或编写)一个对象,该对象将包装JSON对象,并允许它们可枚举。做这件事最好的方法是什么?
到目前为止,我的想法是扩展/混合Enumerable/Array/ArrayProxy/ObjectProxy
,将底层键值存储为Ember.Array
,以及添加keys
字段来存储对象的键。然后,我可以使用setUnknownProperty
和unknownProperty
来设置/获取底层值,并保持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"
]
}
]
}
发布于 2013-03-01 13:10:51
就我所理解的Ember.js哲学而言,声明式手棒模板是足够保守的,可以强调在模板中使用较少的逻辑。
在上述情况下,我建议您使用ContainerView提供JSON作为它的上下文。
https://stackoverflow.com/questions/14025706
复制相似问题