鍍金池/ 問答/網(wǎng)絡安全  HTML/ vue.js 過濾器中怎么調(diào)用 i18n 對象獲取相應語言?

vue.js 過濾器中怎么調(diào)用 i18n 對象獲取相應語言?

定義了一個 filter/index.js 文件,里面 export 出很多 function,如下:


export function parseTime(time, cFormat) {
  //省略邏輯部分
  return time_str;
}

然后在 main 里面注冊該過濾器,如下:

import * as filters from './filters'

Object.keys(filters).forEach(key => {
  Vue.filter(key, filters[key])
});

項目多語言是通過vue-i18n實現(xiàn)的,我想要實現(xiàn)一個功能,通過狀態(tài)編號,配合過濾器,把狀態(tài)id轉換成相應語言的文字描述。

但是現(xiàn)在有一個問題,因為過濾器是一個js文件,沒辦法this.$t()這些方式來獲取vue-i18n對象,該怎么做呢?

回答
編輯回答
我以為

思路:
1、分別把多語言都倒入到過濾器里面;
2、在過濾器中可以通過封裝的模塊獲取當前語言,然后根據(jù)多語言決定使用哪個語言信息模塊對象;

不過這么看來,vue.js 文件可以通過不刷新來切換多語言有點雞肋了,以為模塊化的話就必須有一部分單獨提取到.js文件里面,但是.js文件里米娜的內(nèi)容并不支持這種方式切換。

有人有更好的方法么?

2017年5月18日 04:47
編輯回答
護她命

給過濾器傳參數(shù),

2018年9月7日 11:11