我有以下应用程序根目录:
@Component({
selector: 'my-app',
providers: [],
templateUrl: `<button (click)="callChildFunction()">Close</button>
<router-outlet></router-outlet>`
})
export class AppComponent {
constructor() {
}
callChildFunction(){
// Call myFunction() here
}
}下面是我的子组件(在router-outlet中使用的组件):
@Component({
selector: 'child',
providers: [],
templateUrl: `<div>Hello World</div>`
})
export class ChildComponent {
constructor() {
}
myFunction(){
console.log('success');
}
}我发现我可以使用RouterOutlet获取组件函数,但在应用程序根目录中似乎无法访问它。
如何从应用程序根目录调用myFunction()?
发布于 2017-08-16 18:36:25
路由器-出口与路由有关,它与访问子组件无关,methods.You必须使用@ViewChild从parent.You访问子组件函数,可以找到示例这里。
更新
如果在您的情况下上面不是一个可行的解决方案,您可以点击activate事件来获得路由器出口内实例化组件的引用。
从医生那里
当一个新组件被实例化时,路由器出口会发出一个激活事件,当一个新组件被销毁时,它会发出一个停用事件。
因此,您可以使用这些特性并完成您的工作,done.You可以看到详细的答案这里,并在相同的答案中附加一个柱塞。
https://stackoverflow.com/questions/45720655
复制相似问题