从vue-i18n设置的vuejs默认属性

时间:2018-11-06 11:07:24

标签: javascript vue.js vue-i18n

我想像这样在字典中设置默认属性:

  props: {
    title: {
      type: String,
      default: this.$t("basic.confirm"),
    },
    description: {
      type: String,
    }
  }, ...

$tvue-i18n,如果未在父类中定义标题,我想从字典中设置标题。但是我得到了错误:

  

未捕获的TypeError:this。$ t不是函数

类似错误如果我在没有this的情况下重新加载。

  

未捕获的ReferenceError:未定义$ t

但是如果我在mount方法中注销此值,它将很好地工作。

有没有从字典设置默认属性的解决方案?

谢谢!

1 个答案:

答案 0 :(得分:4)

一种解决方案是将密钥或密钥的一部分作为默认道具,例如

title: {
   type: String,
   default: "basic.confirm", //or "confirm"
 },

和在模板中:

<h1>{{ $t(title) }}</h1> //or $t("basic." + title)

编辑:您可以在函数内部访问$ t

title: {
  type: String,
  default: function () {
    return this.$t("basic.confirm")
  }
},