Vue v-for 中使用this的问题

新手上路,请多包涵

### 问题描述
在Vue中使用v-for 实现一个table,table使用的是element-table,现在需要table的label 实现国际化,发现在里面无法使用this对象。

相关代码

tableItems: [
{

cName:'LiquidFlowSTD',  
eName:'LiquidFlowSTD'  

},
{

cName: "WaterFlowSTD",  
eName: "WaterFlowSTD"  

},
{

cName: "GasFlowSTD",  
eName: "GasFlowSTD"  

},{

cName: "WC",  
eName: "WC"  

},
{

cName: "GVF",  
eName: "GVF"  

},
{

cName: "温度",  
eName: "Temperature"  

},
{
cName: "压力",

eName: "Pressure"  

},{

cName: "DP",  
eName: "DP"  

}
],

<el-table-column v-for="(item,index) in tableItems" :key="index"
prop="date"
:label="this.$i18n.locale=='zh_cn'">
</el-table-column>

在这里面this无法指向Vue的对象实例,就无法判断系统的语言环境,
image.png
发现在v-for 里面无法使用Vue的实例对象this。

请教一下这个是不是因为JavaScript的语法作用域导致this的指向发生变化呢?这种问题该怎么解决呢?

阅读 6.7k
3 个回答

把this. 去掉

模板里面省略this,不用写了。
或者你改成render函数用jsx来写。

模板内不需要写this,当前上下文环境默认是当前组件实例.

检查是否注册了$i18n,可以在当前组件created钩子中打印

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题