dom-repeat模板项的计算属性

时间:2016-11-29 15:33:19

标签: polymer polymer-1.0

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

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

我希望格式化file.createDate,有没有办法使用computed property来执行此操作?

1 个答案:

答案 0 :(得分:3)

不,你需要在项目上使用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;
    });
  }
});