dart - 使用 Polymer-Dart 和 Dart 对象进行数据绑定(bind)

标签 dart polymer dart-polymer

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

我的类(class):

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.name也不item['name']工作...它曾经在 Polymer 0.5 和相应的 Polymer-Dart 版本上工作。 :(

最佳答案

这有点令人困惑,因为还没有新的 polymer 版本的文档,但您(应该)需要做的就是让您的类扩展 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;
  }
}

关于dart - 使用 Polymer-Dart 和 Dart 对象进行数据绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32357949/

相关文章:

jquery - 将 CSS 添加到 jQuery,在 Polymer 组件中动态添加元素

html - Adsense 不适用于 Polymer 设计

dart - 数据绑定(bind)角度和 polymer Dart

flutter - 在 Flutter StatefulWidget 中给 initState 内部的变量赋值与不给变量赋值有什么区别吗?

dart - 将 ListView 放入列中

routing - 无法在 PolymerJS 3.0 的路由函数中访问已更改的数组 "value"? (使用 iron-ajax 和 app-route 元素)

javascript - 如何通过点击 paper-tab 来更改页面内容?

dart - 动态添加 dart 聚合物元素时,如何在 DOM 上获取可观察变量

使用 `use` 命令更改 flutter 版本时 flutter fvm 错误

dart - Dart 属性结果需要缓存吗?