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

时间:2014-09-30 19:20:05

标签: 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();
}

Pages是自定义聚合物中定义的Page列表。

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

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

这甚至可能吗?

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

1 个答案:

答案 0 :(得分:1)

使用| 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;