Vue 中全局过滤器的使用

2020-10-26 14:40:07 浏览数 (1)

首先需要在 main.js 中注册过滤器:

代码语言:javascript复制
import filter from './filter/filter'

// 全局过滤器
Object.keys(filter).forEach(key => {
  Vue.filter(key, filter[key]);
});

同级目录下的 filter 文件如下:

代码语言:javascript复制
let optionKV = (list, key) => {
  if (!list || !key) {
    return "";
  } else {
    let result = "";
    for (let i = 0; i < list.length; i  ) {
      if (key === list[i]["key"]) {
        result = list[i]["value"];
      }
    }
    return result;
  }
};

export default {
  optionKV
}

该方法的作用就是根据传入的对象数组,返回 key 对应的 value

主要的应用场景是:后端往往会用一个数字或者字母代表中文,比如 1 代表开启,前端在获取到 1 的时候需要通过过滤器转化为中文显示,而不是 1 这个数字,不然用户无法理解。

在使用的时候就可以这样使用:

代码语言:javascript复制
<td>{{CHARGE | optionKV("C")}}</td>

其中 CHARGE 是:

代码语言:javascript复制
CHARGE = [
  {key: "C", value: "收费"},
  {key: "F", value: "免费"}
];

0 人点赞