Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从Vue.js中的父对象访问组件数据结构_Javascript_Vue.js - Fatal编程技术网

Javascript 从Vue.js中的父对象访问组件数据结构

Javascript 从Vue.js中的父对象访问组件数据结构,javascript,vue.js,Javascript,Vue.js,我有一个带有Dynamicly创建的组件的主组件,如下所示: <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="addFormE

我有一个带有Dynamicly创建的组件的主组件,如下所示:

<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' ],

正确的方法是什么?

您试图通过组件“类”获取属于组件实例的一些数据。这与在PHP中静态访问实例属性的问题相同

要使其正常工作,可以将命名导出添加到组件文件中

导出常量元数据={
modelNum:8
}
导出默认值{
名称:“ModelAuto”,
道具:['id','nodes','type'],
数据:函数(){
返回{}
}
}
它允许您按照通常的方式导入组件

从“@/components/elems/ModelAuto.vue”导入ModelAuto;
但你也可以这样做

导入ModelAuto,{元数据作为modelAutoMetaData}来自“@/components/elems/ModelAuto.vue”;
导出默认值{
名称:“块”,
道具:['id','nodes','type'],
数据(){
返回{
modelAutoMetaData
}
}
}
你终于可以做到了

添加模型自动
<button type="button" v-on:click="addFormElement('ModelAuto', id, ModelAuto.metaData)">Add ModelAuto</button>
export default {
  name: "ModelAuto",
  props: [ 'id', 'nodes', 'type' ],
  data: function() {
      return {
          metaData: {
              modelNum: 8
          }
      }
  }
}