我想从子组件进行导航,这些组件在router-outlet 内部渲染. 我的父组件有一个路由配置,我想在某些事件上手动导航.但我不知道如何在没有输出的情况下将一些数据(用于导航)从子对象传递给父对象.因为这个建筑是不工作的

 <router-outlet (navigateTo)="navigateToMessagePart($event)"></router-outlet>

我怎么能用正确的方式做呢?也许是从子元素那里导航?但我如何从child获得父方法.

推荐答案

<router-outlet></router-outlet>只是用于添加布线元件的占位符.不支持任何类型的绑定.

您可以创建一个自定义的<router-outlet>,它允许您这样做,或者更常见地使用共享服务在父组件和路由组件之间进行通信.

有关更多详细信息,请参阅https://angular.io/docs/ts/latest/cookbook/component-communication.html

update

现在有一个事件允许获取添加的组件

<router-outlet (activate)="componentAdded($event)" (deactivate)="componentRemoved($event)"></router-outlet>

它允许与componentAdded()中的组件进行通信(调用getter、setter和方法)

不过,共享服务是首选的方式.

Angular相关问答推荐

Angular:浏览器中未显示一些Google Content图标

Angular中绑定嵌入标签src属性的问题

为什么当我在父组件中设置数组元素时,Angular重新创建子组件而不是更新它?

图像未显示在视图屏幕上-Angular 投影

判断哪个Angular 信号导致了影响

选中/取消选中-复选框未正确返回TRUE或FALSE

Angular 路由中的模块构建失败

在Angular中扩展多个类

Moment.js 和 Angular 库

使用 Observable 进行渐进式填充

通过 SignalR 事件组件重定向Angular 页面后不起作用

无法卸载 angular-cli

如何在Angular Material2中获取活动选项卡

为什么 Angular2 routerLinkActive 将活动类设置为多个链接?

Angular 5 手动导入语言环境

Angular2 + Jspm.io:使用类decorator 时需要反射元数据垫片

angular2中的httpinterceptor类似功能是什么?

如何以编程方式触发`valueChanges`?

无法在 RxJs 6 和 Angular 6 中使用 Observable.of

Angular 5 和material - 如何从 SnackBar 组件更改背景 colored颜色