2017-11-22 1 views
0

Ich bin die einzige Datei-Komponenten verwenden, aber ich kann nicht eine Komponente über eine andere Komponente zuzugreifen, folgen, was ich versucht habe ...Wie kann man auf eine Vue-Komponente innerhalb einer anderen Komponente zugreifen?

<template> 
    <div id="containerPrincipal" @click.stop="teste"> 
... 
<template> 

<script> 
/*Other component*/ 
import flex_div from './elementos/Div.vue' 

export default { 
    name: 'containerPrincipal', 
    methods : { 
    teste() { 
     componente = new flex_div().$mount(); 
     console.log(componente); 
    } 
    }, 
    components: { 
    flex_div 
    } 
} 
</script> 

Fehler

_Div2.default ist kein Konstruktor

Wie kann ich das beheben?

+0

Was möchten Sie erreichen? – Bert

+0

Es ist eine Anwendung, wo alles dynamisch generiert wird, also muss ich mehrere Komponenten zwischen SI kommunizieren, ist es möglich? –

+0

Es ist mir nicht klar, was SI ist, aber normalerweise würden Sie Komponenten auf diese Weise nicht manuell erstellen. Wenn es sich um ein Benutzeroberflächenelement handelt, könnten Sie es in die Vorlage einfügen und es bedingt rendern. Wenn nicht, würde ich keine Komponente verwenden. – Bert

Antwort

0

zu beheben ich die Vue wieder zu instanziiert hatte und die Komponente verweisen ...

<template> 
    <div id="containerPrincipal" @click.stop="teste"> 
... 
<template> 

<script> 
/*Other component*/ 
import Vue from 'vue' 
import flex_div from './elementos/Div.vue' 

let flexdiv = Vue.component('divFlex', flex_div); 

export default { 
    name: 'containerPrincipal', 
    methods : { 
    teste() { 
     let componente = new flexdiv().$mount(); 
     console.log(componente); 
    } 
    }, 
    components: { 
    flexdiv 
    } 
} 
</script> 
0

Ich könnte falsch sein, ist aber nicht das, was Sie tun wollen?

<template>< 
    <div id="containerPrincipal" @click.stop="teste"> 
    <flex-div ref="flex_div"></flex-div> 
    </div> 
<template> 

<script> 
/*Other component*/ 
import Vue from 'vue' 
import flexdiv from './elementos/Div.vue' 

export default { 
    name: 'containerPrincipal', 
    methods : { 
    teste() { 
     let componente = this.$refs.flex_div 
     console.log(componente); 
    } 
    }, 
    components: { 
    flexdiv 
    } 
} 
</script> 
+0

Es ist nicht das @ Jeremy, danke trotzdem! –

Verwandte Themen