如何在Polymer.dart 0.5中访问地图值/迭代地图

时间:2013-08-31 17:16:52

标签: dart polymer

我正在研究我的第一个聚合物应用,我被卡住了。如何使用聚合物访问地图值? 我有一个带有地图的课程。我可以迭代模板中的列表,但是如何从地图中获取所有值?

 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>

1 个答案:

答案 0 :(得分:9)

地图有两个可迭代的属性:keysvalues。我想你想要做的是迭代键然后访问值。

类似的东西:

<polymer-element ... >
  <template>
    <template repeat="{{ key in map_answers.keys }}">
      <p>
        <label>{{ map_answers[key] }}</label>
      </p>
    </template>
  </template>
</polymer-element>