Javascript “访问”;这";模板中
我想在模板中动态创建地图图层。因此,我认为我需要访问模板中的vue实例Javascript “访问”;这";模板中,javascript,vue.js,vuejs2,vue-component,Javascript,Vue.js,Vuejs2,Vue Component,我想在模板中动态创建地图图层。因此,我认为我需要访问模板中的vue实例 <template> <MglVectorLayer v-for="(layer, idx) in lLayers" :key="idx" :sourceId="'someid'" :source="somevectorsourcedata" :layerId="layer" :layer="this[layer]" <<<<&l
<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..)
}
}
}
只需使用一种方法:
:layer=“getLayer(层)”
方法:{
getLayer(层){
返回此[层]
}
}
由于组件实例在v-for
中作为此
不可用,因此可以将其替换为\u self
:
:layer="_self[layer]"
或者,如果指定的动态属性名称是数据,则可以使用$data
:
:layer="$data[layer]"
这种模式需要改进。线索是必须引用一个动态计算的对象的名称。您可能只需要1个计算的层,它将处理您的所有层数据,并将处理结果存储在层
项中,而不是有一个计算名称列表。然后,您可以循环查看v-for
中的实际数据,而不是名称。@Dan这只是一个示例。在我的理解中,这个层在数据方面可能会有很大的不同,所以这是我的示例,动态引用计算名称仍然不是一个好的模式。只是让你知道。