Ich versuche, die Name-Eigenschaft eines Objekts mit Vue auszudrucken.Vue Syntax Fehler
Hier ist, was ich versucht {{ selectedTopic.name }}
, das diesen Fehler wirft Uncaught TypeError: Cannot read property 'name' of null
Wenn ich {{ selectedTopic }}
auszudrucken es warten, bis die Daten verfügbar sind und dann ohne Fehler anzuzeigen.
Jetzt verstehe ich, dass die Daten, die ich anfrage, zu diesem Zeitpunkt nicht verfügbar ist, aber warum gibt es einen Fehler? Sollte es nicht einfach warten, bis diese Daten verfügbar sind, wie es für {{ selectedTopic }}
tut?
Vue App
var qaSuggest = new Vue({
el: '#qa-suggest',
data: {
selectedTopic: null,
profiles: []
},
mounted() {
bus.$on("send-topic", selectedTopic => this.selectedTopic = selectedTopic);
},
updated(){
axios.get('/vueprofiles').then(response => this.profiles = response.data);
console.log('selectedTopic: ', this.selectedTopic.name);
}
});
HTML
<div id="qa-suggest">
<ul class="list-unstyled">
<li v-for="profile in profiles">
<div class="clearfix" style="border-bottom: 1px solid #ddd; padding: 5px;">
<div class="pull-left">
<img :src="profile.picture" class="img-responsive" style="max-width: 60px; margin-right: 10px;">
</div>
<div class="pull-left">
<p style="font-size: 12px; margin-bottom: 0;">{{ profile.category }}/{{ profile.subcategory }}</p>
<p><strong>{{ profile.name }}</strong></p>
</div>
</div>
</li>
</ul>
Topic: {{ selectedTopic.name }}
Danke Jungs beide Antworten funktionieren toll :) –