2017-10-17 83 views
0

根組件在我的網頁的道具,我有一個這樣的一套組件和子組件的:訪問VueJS

<TournamentTabs :tournament="{{ json_encode($tournament) }}">  
    <TournamentTab> 
     <TournamentTabGeneral></TournamentTabGeneral> 
     <TournamentTabVenue></TournamentTabVenue> 
     etc. 
    </TournamentTab> 
</TournamentTabs> 

現在,我使用Laravel爲獲得$比賽價值。現在

,我想道具賽是提供給所有TournamentTabs孩子,但訪問this.tournament的時候,我得到undefined

我應該如何在所有chidlren訪問tournament值???

+3

[Vue.js從子組件中訪問父/子數據]的可能副本(https://stackoverflow.com/questions/34122517/vue-js-access-parent-root-data-from-a-child -component) – tptcat

+0

您能否顯示您的組件的代碼,您是否試圖從插槽訪問該數據? –

+0

我不使用插槽。我會盡我所能分享代碼。我在我的車裏:) –

回答

1

有很多方法可以做到這一點。

首先,TournamentTabs不是我可以看到的根組件。根組件 - 它是Vue實例掛載的組件(大多數情況下爲div#app),可以通過this.$root任意位置訪問。

您可以通過this.$parent.tournament訪問它,但這不是最好的方式,因爲如果您需要從深度嵌套的組件訪問屬性,您將最終得到像this.$parent.$parent.$parent....tournament這樣的結果。

您可以嘗試使用vuex庫來實現中央應用程序存儲。