如果我有以下dom-repeat
模板:
<template is="dom-repeat" items="{{myFiles}}" as="file">
<span>
{{file.createDate}} <br/>
</span>
</template>
我希望格式化file.createDate
,有没有办法使用computed property来执行此操作?
答案 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;
});
}
});