Angular Emit to router-outlet
我在父组件中有router-outlet,想从子组件发射,但父组件函数从未被触发?
子组件
1 2 3 4 5 | @Output() setTitle: EventEmitter<string> = new EventEmitter<string>(); ngOnInit() { this.setTitle.emit('test'); } |
在父 html
1 | <router-outlet (setTitle)='setTitle($event)'></router-outlet> |
父 ts 文件
1 2 3 | setTitle(title){ console.log(title) } |
即使是简单的 div 也不行
请帮忙
您不能在 router-outlet 指令上使用自定义事件。
router-outlet 指令有两个事件。
文档
对于您的场景,您可以利用
1 | <router-outlet (activate)='onActivate($event)'></router-outlet> |
通过组件引用可以观察到事件发射器
1 2 3 4 5 6 | onActivate(componentReference) { //Below will subscribe to the searchItem emitter componentReference.setTitle.subscribe((data) => { this.setTitle(data); }) } |