vue與vue-i18n結合實現後臺資料的多語言切換
阿新 • • 發佈:2019-01-03
在XXX.js檔案中定義函式:
getUser(context,info){ context.$http.get(SERVER_URL+'/users',info).then(function(data){ let err =data.body.error; if(err===0){ let dataObj = data.body.userLists; //獲取後臺返回的資料 this.users = dataObj.items.map(function (e,i) { //遍歷獲取的資料,用this.$t()將每項資料與翻譯資源對應 e.gender=context.$t(e.gender); //context 是this, gender 與 diabetes_type 為每個items裡的key;gender裡的value有三種:'GDRNF'、‘GDRF’、‘GDRM’ e.diabetes_type = context.$t(e.diabetes_type); return e; }); this.listLoading = false; // console.log(dataObj); } }) },
然後可以在vue 元件中呼叫函式 :XXX.getUser(this,info); 將後臺獲取的資料做相應操作後放入users陣列;
以上方法是通過map函式遍歷獲取到的資料,用this.$t()將items的value與翻譯資源中的value對應,從而實現後臺資料的多語言切換;
en.json翻譯資源中的部分資料:
{
"GDRNF":"Not Fill",
"GDRF":"Female",
"GDRM":"Male",
}