2017-08-12 88 views
0

是否有任何方法將vue.js組件從子組件渲染到其父項(可能不是直接父項),就像插槽一樣,但方向相反?添加vue.js組件從兒童到家

我的用例:在我的根組件中,我確實有一個<router-view>和一個模塊的容器。從路由器視圖的任何子組件中,我希望能夠將子組件添加到模態包裝器。

我在這裏錯過了vue.js的一個特性,還是有更好的實踐來解決這個問題嗎?

+0

我不完全得到的問題,但如果你使用全局組件,您可以簡單地在多個元素中重複使用它,並在每個元素中應用自己的插槽內容。 因此,在這種情況下,您將註冊一個帶有一個或多個插槽的全球* AppModal *組件,並將其用於您需要的孩子。 – JonnySerra

+0

嗯,但如果我想有不同的模式,可以從相同的視圖,甚至可以從另一個模式內調用,這似乎不像我想要的那麼靈活。在研究這個問題時,我嘗試通過事件觸發模型($ emit和v-on),但沒有看到任何方式在父接收事件後向內容呈現內容。 – dtkahl

+1

https://vuejs.org/v2/guide/components.html#Dynamic-Components? –

回答

0

我想我遲到了,但這裏是我爲了下一代的解決方案(只適用,如果你使用VUE路由器):

routes: [ 
    path: '/dashboard', 
    name: 'dashboard', 
    component: DashboardIndex, 
    children: [{ 
     path: 'popup', 
     component: PopupPlaceholder, 
     children: [{ 
      path: 'a', 
      name: 'a', 
      component: A, 
     }, { 
      path: 'b', 
      name: 'b', 
      component: B, 
     }], 
    }], 
]