要在Angular 8中在其他组件中显示组件,可以使用Angular的组件引用机制。以下是一个示例解决方法:
首先,在要显示的组件(被引用组件)的.ts文件中,使用@Input装饰器定义一个公共属性,以便接收传递给它的数据。例如,假设被引用组件的名称为ChildComponent,可以在ChildComponent的.ts文件中添加以下代码:
import { Component, Input } from '@angular/core';
@Component({
selector: 'app-child',
template: '{{data}}
',
styleUrls: ['./child.component.css']
})
export class ChildComponent {
@Input() data: string;
}
接下来,在要显示被引用组件的组件(父组件)的.ts文件中,使用@ViewChild装饰器来获取对被引用组件的引用。然后,可以通过父组件的视图引用来设置被引用组件的属性。例如,假设父组件的名称为ParentComponent,可以在ParentComponent的.ts文件中添加以下代码:
import { Component, ViewChild, AfterViewInit } from '@angular/core';
import { ChildComponent } from './child.component';
@Component({
selector: 'app-parent',
template: '',
styleUrls: ['./parent.component.css']
})
export class ParentComponent implements AfterViewInit {
@ViewChild('child', {static: false}) childComponent: ChildComponent;
showChildComponent() {
this.childComponent.data = '这是传递给子组件的数据';
}
ngAfterViewInit() {
this.showChildComponent();
}
}
在父组件的模板中,使用ViewChild装饰器指定一个模板引用变量(在此示例中为#child),并将其传递给ViewChild装饰器。然后,在showChildComponent方法中,设置childComponent的data属性。
最后,在父组件的模板中,使用模板引用变量来显示被引用组件。例如,可以在ParentComponent的模板中添加以下代码:
这样,当点击"显示子组件"按钮时,被引用组件ChildComponent将在父组件ParentComponent中显示,并且显示的数据将根据showChildComponent方法中设置的值而变化。