相关疑难解决方法(0)

ng-template 中的 Angular 6 嵌套 ViewChild 为空

我们在我们的应用程序中使用了一个模态(ng-bootstrap 的一个)。该模式看起来像:

<ng-template #modal let-modal>
    <app-audio #audio></app-audio>
</ng-template>
Run Code Online (Sandbox Code Playgroud)

这是逻辑:

@ViewChild('modal')
modal: ElementRef;

@ViewChild('audio')
audio: AudioComponent;
Run Code Online (Sandbox Code Playgroud)

模态打开:

this.modalService.open(this.modal, { size: 'lg' });

一切都很好,直到这里。模态打开并显示音频组件。但是现在,我们想要访问组件内部的逻辑,并且在执行以下操作时:

this.audio.somePublicComponentFunction()

碰巧 this.audio 为空。我已经尝试让孩子使用 angular 的变化检测器,但找不到将 this.audio 与实际组件正确链接的方法。有任何想法吗?非常感谢。

你可以在这里看到这个问题:stackblitz.com/edit/angular-ofmpju

javascript viewchild ng-bootstrap angular

8
推荐指数
3
解决办法
1万
查看次数

如何将EventEmitter输出附加到路由下的组件?

我有一个路由配置

@RouteConfig([
    { path: '/', name: 'Start', component: Journal },
    { path: '/register', name: 'Register', component: Register },
    { path: '/login', name: 'Login', component: Login },
    { path: '/settings', name: 'Settings', component: Settings },
])
Run Code Online (Sandbox Code Playgroud)

我想听听Journal的@Output发出的事件.当模板中唯一的引用是,我该怎么做呢

<a class="nav-item nav-link" [routerLink]="['Journal']">Journal</a>
Run Code Online (Sandbox Code Playgroud)

angular2-routing angular

6
推荐指数
1
解决办法
1476
查看次数