我正在研究我的第一个聚合物应用,我被卡住了。如何使用聚合物访问地图值? 我有一个带有地图的课程。我可以迭代模板中的列表,但是如何从地图中获取所有值?
query('#tmpl-question').model = q;
query('#tmpl-answers').model = q.map_answers;
@observable
class Question extends PolymerElement with ObservableMixin{
@observable
Map<String,String> map_answers = toObservable({}); //new Map<String,String>();
void initQuestion(){
map_answers["false1"]="1";
map_answers["true"]="42";
map_answers["false2"]="2";}}
<template id="tmpl-answers" repeat>
<p>
<label for"a1" value="asdf"> HOW TO DISPLAY ALL MAP VALUES //iterate over list elements with {{}}
</p>
</template>
编辑:问题在于将对象q
分配给模型。
不起作用:
Question q = new Question();
query('#tmpl-question').model = q;
如果您导入'package:polymer_expressions / polymer_expressions.dart'; ,这将有效:
TemplateElement template = query('#tmpl-question');
template.bindingDelegate = new PolymerExpressions(globals: {
'uppercase': (String input) => input.toUpperCase()
});
template.model = q;
<template repeat="{{j in map2.keys}}">
<li>{{map2[j]}}</li>
</template>
答案 0 :(得分:9)
地图有两个可迭代的属性:keys
和values
。我想你想要做的是迭代键然后访问值。
类似的东西:
<polymer-element ... >
<template>
<template repeat="{{ key in map_answers.keys }}">
<p>
<label>{{ map_answers[key] }}</label>
</p>
</template>
</template>
</polymer-element>