2017-10-10 89 views
0

我們如何通過名稱調用/應用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 }} 

回答

2

在你的榜樣,你就需要設置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 –