Angular如何找到使用

时间:2016-11-21 16:11:50

标签: angular angular-routing

当我尝试向我的应用程序添加辅助路径以显示弹出窗口和向导时,我在获取角度以实际识别我的命名router-outlet标记时遇到了一些麻烦。我把它放在被路由到的组件内,而是放在路由到组件内部。每当我尝试导航到正确的路线时,我都会收到类似Cannot find router outlet popup...的消息,我将router-outlet移动到组件层次结构中的某个级别,突然之间一切正常。

所以问题是,angular如何解析组件树以查找router-outlet标签以添加组件?

1 个答案:

答案 0 :(得分:0)

路由器插座在创建父级RouterOutletMapparentOutletMap)时自行注册

https://github.com/angular/angular/blob/52be848f94a70feffd44a1d688286f750d0471d9/modules/%40angular/router/src/directives/router_outlet.ts#L52

@Directive({selector: 'router-outlet'})
export class RouterOutlet implements OnDestroy {
  ...    
  constructor(
      private parentOutletMap: RouterOutletMap, private location: ViewContainerRef,
      private resolver: ComponentFactoryResolver, @Attribute('name') private name: string) {
    parentOutletMap.registerOutlet(name ? name : PRIMARY_OUTLET, this);
  }