我使用Ember 2.8。 Ember中存在Map data structure。它应该是可迭代的。但是,没有例子如何枚举并渲染它。
假设我的地图中的键和值都是设置了“名称”的JS对象,我在Emblem中尝试过:
each myMap.keys as |key|
p = key.name
each myMap.values as |value|
p = value.name
/ each myMap as |key, value| //this one causes build error
/ p = key.name
/ p = value.name
这些语法似乎都不起作用,并且渲染的内容不仅仅是“未定义”的空白空间。
你们中的任何人都知道如何在Ember中渲染地图吗?
答案 0 :(得分:1)
事实证明,使用本机JS Map就足够了。
我的地图最终使用了对Object: Array[Object]
。
在Emblem模板中:
each myMap as |value key| // <--- notice the order!
p {{key.name}}
p {{key.date}}
each value as |item| // values from map are arrays so I enumerate through them as well
p {{item.name}}
p {{item.details}}
在控制器中:
myMap: function() {
var myMap = new Map();
myMap.set(
{name: 'keyname', date: 'keydate'},
[{name: 'itemname', details: 'itemdetails'}, {name: 'itemname2', etails: 'itemdetails2'}]
);
// ... etc set more pairs
return myMap;
}.property();
答案 1 :(得分:0)
您是否正在寻找像each-in
帮手那样的东西?
用法:
{{#each-in obj as |key value|}}
{{key}}:{{value}}<br>
{{/each-in}}
看看这个sample demo。