Vue.js vue-i18n:如何使用内部vue实例过滤器

Vue.js vue-i18n:如何使用内部vue实例过滤器,vue.js,vue-i18n,Vue.js,Vue I18n,我想使用过滤器执行翻译 问题是,“此”未指向筛选函数中的vue实例 这就是我现在拥有的 在我的模板中,我有以下内容: <p>{{ parking.status | translate }} </p> new Vue({ ... filters: { translate: function(value, vue) { return this.$i18n.t('MLAA-47'); } 我得到的错误是this==未定义 如何将其

我想使用过滤器执行翻译
问题是,“”未指向筛选函数中的vue实例

这就是我现在拥有的

在我的模板中,我有以下内容:

  <p>{{ parking.status | translate }} </p>
 new Vue({ ...
 filters: {
      translate: function(value, vue) {
          return this.$i18n.t('MLAA-47');
 } 
我得到的错误是this==未定义

如何将其指向筛选函数中的vue实例

As points@vitaly mosin在该答案的注释中解释说,您不能在过滤器函数中使用
这个

过滤器主要用于文本转换目的。对于 在其他指令中更复杂的数据转换,您应该使用 而不是计算属性

我也遇到了同样的问题,我决定将带$i18n的翻译转换为计算方法,如:

在模板中,而不是以下内容:

 <p>{{ parking.status | translate }} </p>
我猜您有一个动态状态(不总是返回:“MLAA-47”),您应该声明您对所有这些状态都有翻译。这对我有用


希望对您也有帮助

我们可以像这样导入文件导出i18n实例

import i18n from '@/i18n.js'
i18n.t('your.message')
像这样使用它

import i18n from '@/i18n.js'
i18n.t('your.message')

已经有人回答了同样的问题嗨,汉内斯,你的问题解决了吗?有什么答案对你有帮助吗?如果是,尝试标记为已解决,以帮助他人并保持S.O.清洁。谢谢