【发布时间】:2018-09-28 15:32:42
【问题描述】:
我想将一个事件发射器从一个子组件绑定到一个父组件,但父组件是“app.component”所以我假设两者之间的关系不是声明的而是隐含的。
在this 答案中,我看到了如何将事件发射器添加到已在其父级中明确声明的子级:
<child (notifyParent)="getNotification($event)"></child>
但在我的应用程序中,子组件(让我们调用 id:child)不是以这种方式声明的,而是在 app.module 中声明为路由:
const appRoutes: Routes = [
{ path: '**', component: Child}
];
这个组件基本上代表了站点的启动页面,并且在未提供完整身份验证的情况下也用作防护中的重定向。
我想做的是向child 添加一个事件发射器,通知app.module 发生变化。
我已经在child 和EventEmitter 中实现了带有@Output() 装饰器的方法,并且我还实现了将在app.module 中调用的方法,但我只是找不到在两者中注册此绑定的地方组件。
由于所有组件都是app.component 的子组件,app.component 不应该提供一种方法来注册来自其子组件的传入输入,而无需先将它们明确声明为子组件?
【问题讨论】:
-
看看this answer。
-
看看我的回答。这是一种不同的方法,我认为会有所帮助
标签: angular angular5 eventemitter