将 Vue 过滤器显式导入组件
Explicitly import Vue filters into component
我有一个全局过滤器文件,我正在尝试将一个过滤器显式导入组件。
在我的过滤器文件中,我有:
//filters.js
import Vue from 'vue';
Vue.filter('shorten', (str, len) => (str.length > len ? `${str.substring(0, len)}...` : str));
Vue.filter('secToMin', (dur) => Math.ceil (dur / 60));
然后在我的组件中,我想做类似的事情:
//MyComponent.vue
import secToMin from './util/filters.js';
export default {
filters: {
secToMin: { secToMin, },
},
};
但这实际上并没有触发过滤器。有没有可能做这样的事情??
您可以将过滤器导出为命名导出:
export function shorten (str, len) {
return str.length > len ? `${str.substring(0, len)}...` : str;
}
export function secToMin (dur) {
return Math.ceil(dur / 60);
}
然后在你的组件中:
import { secToMin } from './util/filters.js';
export default {
filters: {
secToMin
}
};
我有一个全局过滤器文件,我正在尝试将一个过滤器显式导入组件。
在我的过滤器文件中,我有:
//filters.js
import Vue from 'vue';
Vue.filter('shorten', (str, len) => (str.length > len ? `${str.substring(0, len)}...` : str));
Vue.filter('secToMin', (dur) => Math.ceil (dur / 60));
然后在我的组件中,我想做类似的事情:
//MyComponent.vue
import secToMin from './util/filters.js';
export default {
filters: {
secToMin: { secToMin, },
},
};
但这实际上并没有触发过滤器。有没有可能做这样的事情??
您可以将过滤器导出为命名导出:
export function shorten (str, len) {
return str.length > len ? `${str.substring(0, len)}...` : str;
}
export function secToMin (dur) {
return Math.ceil(dur / 60);
}
然后在你的组件中:
import { secToMin } from './util/filters.js';
export default {
filters: {
secToMin
}
};