如何通过名称应用vue.js过滤器
问题描述:
我们如何通过名称调用/应用vue.js过滤器?如何通过名称应用vue.js过滤器
例如:col.format == 'date_format'
,其中date_format
是vue.js 过滤
的是的cols像这样定义:
cols = [
{field: 'dt_joined', format: 'date_format'},
{field: 'dt_trained', format: 'date_format'},
{field: 'salary', format: 'money_format'}
]
// register filters
Vue.filter('date_format', function (x) {
return x === null ? null : new Date(x).toISOString().slice(0, 10)
})
td(v-else-if='col.format') {{ props.item[col.field] | col.format }}
td(v-else) {{ props.item[col.field] }}
//- td {{ props.item.dt_joined | date_format }}
//- td {{ props.item.salary | money_format }}
答
在你的榜样,你就需要设置col.format
是实际函数,而不是函数的名称:
let date_format = Vue.filter('date_format');
let money_format = Vue.filter('money_format');
let cols = [
{ field: 'dt_joined', format: date_format },
{ field: 'dt_trained', format: date_format },
{ field: 'salary', format: money_format }
]
然后foo | col.format
将应用t在呈现它之前,他的功能被col.format
指向foo
变量。
啊我现在明白了。谢谢 –
这甚至表明我们*不这样做* ...哦以及https://github.com/vuejs/vue/issues/4405#event-885979226 –