如何通过名称应用vue.js过滤器

如何通过名称应用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变量。

+0

啊我现在明白了。谢谢 –

+0

这甚至表明我们*不这样做* ...哦以及https://github.com/vuejs/vue/issues/4405#event-885979226 –