2017-07-25 62 views
0

我不明白爲什麼我無法訪問user對象中的數據。無法訪問Vue組件內對象的數據

{ 
    "channel_id": 2, 
    "user": { 
    "id": 1, 
    "name": "Clyde Santiago", 
    "email": "[email protected]", 
    "created_at": "2017-07-25 08:10:58", 
    "updated_at": "2017-07-25 08:10:58" 
    }, 
    "message": "ssd" 
} 

訪問channel_idusermessage是罰款。但是,當我訪問了user的數據也顯示

錯誤,

「的未定義無法讀取屬性‘名’」這是在我的Vue組件的HTML

<ul class="list-group"> 
    <li class="list-group-item" v-for="conversation in conversations"> 
    <p> 
     {{conversation.message}} 
    </p> 
    <small>{{conversation.user.name}}</small> // error here 
    </li> 
</ul> 
+1

什麼錯誤,這個數據是異步檢索? – Bert

+1

您試圖訪問哪些數據? {{conversation.user}}是一個對象,所以它應該給[object Object]。 {{conversation.user.id}}會給用戶id等 – HelloWorld

+0

「無法讀取未定義的屬性'名稱'這就是錯誤。我正在使用推送器 –

回答

2

當數據異步檢索時,它不是立即定義。因爲你在模板中引用

conversation.user.name 

,有些時候沒有定義user,這會導致你的錯誤。

通常情況下,這可以通過警衛輕鬆避免。

{{conversation.user && conversation.user.name}} 
+0

謝謝。有用 –

0

無論您使用的模板語言是什麼,當您撥打{{conversation.user}}但您正在給它一個對象時,可能需要一個字符串。所以,當模板引擎試圖呼應了「串」傳遞給它,但它不會是一個字符串時,只是針對conversation.user ..Hence錯誤

試試這個{{conversation.user.name}}

如果信息在異步加載時,可能需要先檢查user對象是否先存在。因此,要做到這一點,將是這樣的:

{{conversation.user && conversation.user.name}} 或類似的車把它會是這樣

{{#if conversation.user}} 
    {{conversation.user.name}} 
{{/if}} 
+0

這是錯誤。訪問{{conversation.user}}很好。但是當{{conversation.user.name}}顯示錯誤\t 「無法讀取未定義的屬性」名稱「 –

+0

是否加載異步? –

+0

投票反對太困惑 –

-2

如圖所示,用戶本身就是一個對象,而不是打印的值。您是否嘗試過單獨訪問其屬性,如{{conversation.user.name}}

+0

N00b沒有得到這個:我的回答是downvoted,因爲它回答了原來的問題,這已經被大量編輯?那麼,什麼是downvoting的價值? –

+0

問題在於_heavily_(這不是我所要求的),因爲它不清楚。在回答一個不清楚的問題時,你冒着對錯誤問題的正確答案冒險。 –