openks / learn-vue

自定义组件文档
https://openks.github.io/learn-vue
0 stars 0 forks source link

vue filter的使用 #35

Open openks opened 7 years ago

openks commented 7 years ago

同事写了如下两段代码,我说为什么不把格式作为一个参数,他说多加个参数后无法使用

Vue.filter('date', (value) => {
  if (value) {
    return moment(new Date(value)).format('YYYY-MM-DD');
  }
  return value;
});
Vue.filter('dateTime', (value) => {
  if (value) {
    return moment(new Date(value)).format('YYYY年MM月DD日 HH:mm');
  }
  return value;
});

使用

<span>{{article.createTime | dateTime}}</span>
<!-- 添加参数他是这么写的 -->
<span>{{article.createTime | dateTime 'YYYY-MM-DD'}}</span>
openks commented 7 years ago

带他看了教程,教程里这么说:

{{ message | filterA('arg1', arg2) }}

filterA 被定义为接收三个参数的过滤器函数。
其中 message 的值作为第一个参数,
普通字符串 'arg1' 作为第二个参数,
表达式 arg2 取值后的值作为第三个参数。

修改后就变成了如下这样: 先定义全局filter

Vue.filter('dateTime', (value, format) => {
  if (value) {
    return moment(new Date(value)).format(format);
  }
  return value;
});

再使用filter

<span>{{article.createTime | dateTime('YYYY-MM-DD')}}</span>