2017-08-12 109 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, 
     }], 
    }], 
]