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

Databinding using Polymer-Dart and Dart objects

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

我的班级:

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 版本上工作。 :(

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

// @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;
  }
}