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;
});
}
});
如果我有以下 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;
});
}
});