I have main component with dynamicaly created components like this:
<template>
<div class="box">
<component v-for="node in nodes" v-bind:is="node.type" :id="node.id" :nodes="node.nodes" :key="node.id">
</component>
<button type="button" v-on:click="addFormElement('Block', id, metaData)">Add Layout</button>
<button type="button" v-on:click="addFormElement('ModelAuto', id, ModelAuto.metaData)">Add ModelAuto</button>
</div>
</template>
<script>
import Block from "@/components/elems/Block.vue";
import ModelAuto from "@/components/elems/ModelAuto.vue";
export default {
name: "Block",
props: [ 'id', 'nodes', 'type' ],
And I need to pass data structure of imported components in v-on:click methods. For example in line
<button type="button" v-on:click="addFormElement('ModelAuto', id, ModelAuto.metaData)">Add ModelAuto</button>
I'd like to pass object with name metaData from data section of ModelAuto component.
In ModelAuto component data section looks like:
export default {
name: "ModelAuto",
props: [ 'id', 'nodes', 'type' ],
data: function() {
return {
metaData: {
modelNum: 8
}
}
}
}
What is the right way to do this?