Ember中是否有支持Ember.Array/Ember.Enumerable的鍵值對象?Ember.js中的枚舉對象(鍵值映射)
我想在我的Handlebars模板中用{{#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"
]
}
]
}
你的JSON有多麼隨意?你可以發佈一些示例數據,顯示你想要支持的不同格式,以及你想如何迭代它們?我不是專家,但我認爲這會非常有幫助。 – Aras
@Aras我剛剛更新了一些例子的問題。基本上,數據格式可以是任何東西,因爲它是所有用戶定義的... –
你應該看看一個新的路由器API:http://emberjs.com/guides/controllers/representing-multiple-models-with-arraycontroller/ 。它允許使用每個助手遍歷對象。 –