Доступ "это" в шаблоне - PullRequest
       4

Доступ "это" в шаблоне

0 голосов
/ 03 апреля 2020

Я хочу динамически c создать слои карты в моем шаблоне. Поэтому я думаю, что мне нужен доступ к экземпляру vue в моем шаблоне

<template>
  <MglVectorLayer
    v-for="(layer, idx) in lLayers"
    :key="idx"
    :sourceId="'someid'"
    :source="somevectorsourcedata"
    :layerId="layer"
    :layer="this[layer]"  <<<<< I need to get the computed propery (layer1 & layer2) here
  />
</template>

export default {
  data () {
    layers: ['layer1', 'layer2']
  },
  computed: {
   layer1 () {
     return (..somelayerdata..)
   },
   layer2 () {
     return (..someotherlayerdata..)
   }
  }
}

Когда я опускаю this, я получаю предупреждение: Expected Object, got String ...

Кто-нибудь знает, как Я могу получить доступ к this? Или, может быть, есть другой / лучший способ сделать это?

Ответы [ 2 ]

1 голос
/ 03 апреля 2020

Просто используйте метод:

:layer="getLayer(layer)"
methods: {
  getLayer(layer) {
    return this[layer]
  }
}
0 голосов
/ 03 апреля 2020

Поскольку экземпляр компонента недоступен как this внутри v-for, его можно заменить на _self:

:layer="_self[layer]"

Или, если указанные динамические c имена свойств были данными, $data можно использовать:

:layer="$data[layer]"
...