【问题标题】:Accessing Data from Custom Object in a Repeated List从重复列表中的自定义对象访问数据
【发布时间】:2014-10-01 03:36:13
【问题描述】:

我在 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}} 会按预期返回字符串。

这可能吗?

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

【问题讨论】:

    标签: dart dart-polymer


    【解决方案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;
    

    【讨论】:

    • 谢谢!您的更改与@observable 标记完美配合!感谢您的帮助。
    猜你喜欢
    • 2017-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-10
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    • 2015-09-12
    相关资源
    最近更新 更多