2016-08-11 11 views
0

Vue.jsと初心者として、私はこのようになりますコンポーネントがあります。「?スコープが未定義」警告です

<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』に存在し、正しいですデータ小道具に渡されるオブジェクトしかし、どのように私は、ネストされたアーティスト名についてポップアップ表示の警告を取り除くことができます

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

ETA:?ああ、申し訳ありません、はい、表示するために参考にされているだろう「データ」:

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

簡潔にするためにいくつかのフィールドを削除しましたが、これはdata.artist.nameが実際に存在することを示していることをうまく示しています。警告にもかかわらず、確実にページに正常に出力されます。

+0

可能であれば、完全な「データ」を共有してください。 – C2486

+0

おそらくdata.artistが存在しないためです。親のコンポーネントを使用する場合、データプロパティをのようなデータにバインドする必要があり、そのアルバムは{title: 'my world' 、artist:{name: 'justin bieber'}} – vbranden

+0

私はデータを出力として{{data | json}}。それはdata.artist.nameが存在しないことではないと思います。 – thesunneversets

答えて

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

D'oh、そうです、それは本当に簡単です。私はすべての "データ"にdata.artistがあったので混乱していましたが、それが確立される前に、警告が与えられる時点があると思います... – thesunneversets

関連する問題