2016-08-11 1 views
0

Als Anfänger mit Vue.js, habe ich eine Komponente, die wie folgt aussieht:Wie Vuejs entfernen „? Umfang ist nicht definiert‘ Warnung

<template> 
    <div> 
    <a href="{{ data.uk_store_link }}"> 
     {{ data.title }} - {{ data.artist.name }} 
    </a> 
    </div> 
</template> 

<script> 
export default { 
    props: ['data'] 
} 
</script> 

‚data.artist.name‘ ist vorhanden und korrekt in das Objekt, das an die Daten prop geben Aber wie kann ich die Warnung loszuwerden, die über den verschachtelten Künstlernamen erscheint

[Vue warn]: Error when evaluating expression "data.artist.name": TypeError: scope.data.artist is undefined (found in component: <release>)

ETA:.? Ah, sorry, ja, wäre es hilfreich gewesen, um zu zeigen, die "Daten":

{ "id": 23182, "title": "Music from 'Likely Stories'", "uk_store_link": " http://store.roughtraderecords.com/...html ", "artist": { "id": 1176, "name": "Jarvis Cocker" } }

Ich habe einige Felder dort zur Kürze entfernt, aber hoffentlich zeigt dies, dass data.artist.name tatsächlich existiert. Es wird sicherlich trotz der Warnung erfolgreich auf die Seite ausgegeben.

+0

Bitte teilen kompletten 'data' wenn möglich? – C2486

+0

ist wahrscheinlich, weil data.artist nicht existiert. Wenn Sie die Komponente im Parent verwenden, müssen Sie Ihre Dateneigenschaft an ein Stück Daten wie binden und dieses Album sieht wie folgt aus: {title: 'my world' , Künstler: {name: 'justin bieber'}} – vbranden

+0

Ich habe die Daten als Ausgabe in {{data | JSON}}. Es ist nicht so, dass data.artist.name nicht existiert, denke ich nicht. – thesunneversets

Antwort

3
{{ data.artist ? data.artist.name : '' }} 
+0

D'oh, du hast Recht, es ist wirklich so einfach. Ich war verwirrt, weil alle "Daten" einen Datenkünstler hatten, aber ich schätze, es gibt einen Zeitpunkt, bevor das festgelegt wurde, wo die Warnung gegeben wird ... – thesunneversets

Verwandte Themen