我在 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}}
但没有任何效果。有趣的是,如果列表是字符串而不是页面,
{{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/