dart - `<template repeat>` 的作用域规则是什么

标签 dart polymer dart-polymer

应该在模板内创建绑定(bind)repeat需要 polymer 元素上的关联属性,我认为它们绑定(bind)到 ObservableList 的数组项?

在我的模板中是以下代码:

<polymer-element name="event-details">
  <template>
    <!-- etc -->
    <template repeat="{{artist in event.artist}}">
      <artist-card artist="{{artist}}">
    </template>
    <!-- etc -->
  </template>
  <!-- etc -->
</polymer-element>

我的元素定义看起来像
@CustomTag('event-details')
class EventDetails {
   /* etc */
   @published
   api.Event get event => readValue(#event);
   set event(api.Event event) => writeValue(#event, value);
   /* etc */
}

当我创建元素时,我得到了错误
"EventDetails has no attribute `artist`"

但我假设 artist<template repeat>应该只存在于该模板的范围内。拥有 {{artist}} 没有任何值(value)。在元素的定义上,因为它只会指向模板子元素中的最后一个元素。
artistsObservableListapi.Event对象,尽管它是在没有使用 polymer 的情况下定义的。

最佳答案

使用简单的属性(field/getter/setter)而不是 readValue/writeValue。

关于dart - `<template repeat>` 的作用域规则是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29657175/

相关文章:

json - Flutter获取Json并提取变量

dart - 在 polymer Dart 中插入外部引用模板的正确方法?

data-binding - 聚合物 Dart : Data bind integer value to String attribute

firebase - Flutter/Dart 应用因 Firebase Date 对象的更改而中断

html - 固定页面滚动

css - Polymer Elements - 响应式 <body> 字体大小

dart - Dart 聚合物奇怪的错误

dart - 部署Polymer Dart应用程序

Dart或Flutter如何读取一个float32 little endian编码的二进制文件并转换成List<double>?

Dart polymer .dart dart2js