Je souhaite créer une roue d'arrière-plan pour un développement futur. Je souhaite intégrer wangEdit pour l'édition de texte riche du formulaire intermédiaire. J'utilise vue+vue-router. Il est prévu d'en faire un module indépendant. end appelle le composant, il demande les données fournies par le back-end pour restituer la page souhaitée, c'est donc écrit comme ceci sur la page :
.<template>
<p>
<p v-for="item in items">
<p v-if="item.type=='editor'">
<label>{{ item.title }}</label>
<p id="editor" style="height:400px;max-height:500px;">
{{ item.model }}
</p>
</p>
<p v-if="item.type=='input'">
<el-input v-model="item.model" placeholder="请输入内容"></el-input>
</p>
</p>
</p>
</template>
Puis j'ai écrit dans vue's Mounted :
mounted() {
axios.get('shop/pageData').then((res)=>{
this.items = res.data.data;
var editor = new wangEditor('editor');
editor.create();
});
}
Ensuite, il ne peut pas être rendu et une erreur est signalée
Uncaught (promis) TypeError : Impossible de lire la propriété 'menus' d'undefined
Je n'ai pas beaucoup fait de front-end et j'utilise vue. Je voudrais vous demander :
1. Comment vue peut-elle coopérer avec le back-end pour mieux obtenir des données lors de l'appel de composants directement sur la page json_encode($data) ? //J'utilise php comme back-end
ou Lorsque le composant est appelé, demande des données à axios
2 Au début, je pensais que c'était un problème de décalage horaire. Je pensais que le problème était dû au rendu avant que les données ne soient demandées. , j'ai donc essayé de demander les données dans la partie create(){} et d'attribuer la valeur. Donnez this.data, puis lorsque vous appelez Mounted(){}, vous constatez que this.data n'a aucune valeur. Pourquoi est-ce ?
Lors de l'exécution de new wangEditor('editor'), le node id=editor existe-t-il ? Cela devrait être le problème