dart - 从重复列表中的自定义对象访问数据

标签 dart dart-polymer

我在 dart 中定义了一个类,如下所示:

class Page extends Object with Serializable {
  String name;

  Page(this.name);

  String toString() {
    return name;
  }
}

和一个像这样结构的定制聚合物元素:

<polymer-element name="sidebar-list">
  <template>
    <ul>
      <template repeat="{{page in pages | enumerate}}">
        <li>{{page.value}}</li> // what do I call here to get the name of the page?
      </template>
    </ul>
  </template>
</polymer-element>

以及定义聚合物对象的方法:

@CustomTag('sidebar-list')
class SidebarList extends PolymerElement {
  final List<Page> pages = <Page>[new Page('Page 1'), new Page('Page 2'), new Page('Page 3')];

  SidebarList.created() : super.created();
}
PagesPage 的列表在定制聚合物中定义。

我的问题是:如何从聚合物元素占位符引用类内部的方法?我尝试了所有合乎逻辑的事情,例如 {{page.value.toString()}}{{page.value.name}}{{page.name}}但没有任何效果。

有趣的是,如果列表是字符串而不是页面,{{page.value}}按预期返回一个字符串。

这甚至可能吗?

非常感谢你的帮助!如果需要,我可以提供任何澄清。

最佳答案

| enumerate你应该使用

<li>{{page.value.name}}</li>

没有 | enumerate
<li>{{page.name}}</li>

如果你没有像这样初始化字段

final List<Page> pages = <Page>[new Page('Page 1'), new Page('Page 2'), new Page('Page 3')];

您需要添加 @observable因此,Polymer 可以识别何时分配了新值。

@observable
final List<Page> pages;

关于dart - 从重复列表中的自定义对象访问数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26128452/

相关文章:

flutter - 在企业(私有(private))环境中托管 dart/flutter 包的官方方式是什么?

Dart 为什么我的代码不适用于负值

flutter - 为 flutter web 应用程序禁用 crashlytics 并为 flutter 移动应用程序启用

dart - 是否可以通过单独构建Polymer.dart元素?

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

dart - 如何在 flutter/dart 中检查 TextField 是否包含 unicode 字符?

dart - ListView.builder 在 flutter 中逐项滚动

dart - 映射为自定义元素的已发布属性

dart - Polymer build.dart - clickcounter 示例中未处理的异常

dart - 无法设置聚合物元素<paper-dialog>的坐标