使用Polymer-Dart和Dart对象进行数据绑定

时间:2015-09-02 16:04:15

标签: dart polymer dart-polymer

我有一个名为MyClass的自定义类。我的自定义元素中有List<MyClass> testList,并希望使用数据绑定来显示列表的内容。

MyClass的:

class MyClass {

  String name;

  MyClass(String name) {
    this.name = name;
  }

}

custom_element.dart:

  ...

  attached() {
    super.attached();
    var lst = new List<MyClass>();
    lst.add(new MyClass('test'));
    set('testList', lst);
  }

  ...

custom_element.html:

  ...

  <template is="dom-repeat" items="{{testList}}">
      <span>{{item}}</span>
      <span>{{item.name}}</span>
  </template>

  ...

然而,输出是:

  <span>[object DartObject]<span>
  <span><span>
  <span>[object DartObject]<span>
  <span><span>

为什么不显示对象的名称?如何访问属性名称? item.nameitem['name']都不起作用......它曾用于Polymer 0.5和相应的Polymer-Dart版本。 :(

1 个答案:

答案 0 :(得分:3)

这有点令人困惑,因为新的聚合物版本还没有文档,但您(应该)需要做的就是让您的类扩展JsProxy类。如果您在behaviors分支上,则还需要使用@jsProxyReflectable对该类进行注释。例如:

// @jsProxyReflectable // only if you are on the `behaviors` branch
class MyClass extends JsProxy {
  @reflectable // from >= 1.0.0-rc.2
  String name;

  MyClass(String name) {
    this.name = name;
  }
}