dom-重复模板项的计算属性

Computed properties on an item of dom-repeat template

如果我有以下 dom-repeat 模板:

<template is="dom-repeat" items="{{myFiles}}" as="file">
  <span>
    {{file.createDate}} <br/>
  </span>
</template>

我想格式化 file.createDate,有没有办法使用 computed property 来做到这一点?

不,您需要在项目上使用 computed binding(或者在这种情况下,它的子属性):

// template
<template is="dom-repeat" items="{{_myFiles}}" as="file">
  <span>{{_formatDate(file.createDate)}}</span>
</template>

// script
Polymer({
  _formatDate: function(createDate) {
    return /* format createDate */;
  }
});

或者,您可以在 myFiles 数组上使用计算的 属性(例如,命名为 _myFiles),它将在 dom-repeat 迭代之前处理所有项目:

// template
<template is="dom-repeat" items="{{_myFiles}}" as="file">
  <span>[[file.createDate]]</span>
</template>

// script
Polymer({
  properties: {
    myFiles: Array,
    _myFiles: {
      computed: '_preprocessFiles(myFiles)'
    }
  },
  _preprocessFiles: function(files) {
    return files.map(x => {
      x.createDate = /* format x.createDate */;
      return x;
    });
  }
});