在模板中使用计算属性dom repeat似乎实际上没有获得数据

时间:2016-10-17 13:46:04

标签: dart polymer-1.0 dart-polymer

我一直在使用的用例是我有一些标记如下。

<my-radiolist value="{{myValue}}">
  <template is="dom-repeat" items="{{test}}">
    <my-radiobutton value="{{item}}" label="{{item}}"></my-radiobutton>
  </template>
</my-radiolist>

当测试被定义​​为:

@property List<int> test = [1,2,3];

它运作得很好。

现在,我希望通过循环更复杂的对象来填充此列表。我想让它计算,然后执行给定的函数。我更新样本如下:

@Property(computed:"getTest()")
List<Map> test = null;

@reflectable
List<Map> getTest() {
  print("Inside my getTest Function");
  return [{"key": "test", "value": "test"}, {"key":"test 2","value":"test 2"}];
}

我注意到我的print语句从未触发过,所以我的属性有我的默认值,这意味着没有任何东西可以迭代。

我以前做过这些,但不是模板转发器。有什么我做错了吗?

我的想法是,因为在更新参数时计算更新,并且因为我没有使用任何参数,所以在这种情况下使用计算属性不是我应该采取的行动。

1 个答案:

答案 0 :(得分:1)

  

该值被解释为方法名称和参数列表。每当任何参数值发生变化时,都会调用该方法来计算该值。永远不应直接写入计算属性。有关详细信息,请参阅计算属性。

当没有参数时,我认为计算属性无论如何都没有意义。

另见https://github.com/dart-lang/polymer-dart/wiki/properties#computed-properties