【发布时间】:2020-01-07 02:58:39
【问题描述】:
当我使用@ViewChild 访问子组件时,我可以访问它的所有公共方法。但是,其中一些方法是专门为模板交互而编写的,不应被另一个(父)组件访问。您需要将变量/方法设置为公开,以便您的模板能够使用它们,但这样做也会破坏封装。
有谁知道限制变量/方法仅访问组件、模板和测试的方法?比如Java中的package-private修饰符?
在下面的代码中,父组件可以通过@ViewChild(TestComponent) 访问该组件,然后调用testComponent.showMessage$.next('something totally unrelated')。如何定义这是我不想公开的功能?
@Component({
selector: 'app-aanvraag',
template: `
<div *ngIf="showMessage$ | async as message">
{{message}}
</div>`,
styleUrls: ['./aanvraag.component.scss']
})
export class TestComponent {
showMessage$ = new BehaviorSubject('Some message');
constructor() {
}
}
【问题讨论】:
标签: angular typescript