【发布时间】:2021-06-28 13:14:03
【问题描述】:
所以我有这个组件,它用于显示一个 div 滑入页面,并使用另一个组件提供的模板
@Component({
selector: 'app-slide-in',
templateUrl: './slide-in.component.html',
styleUrls: ['./slide-in.component.less'],
animations: [
trigger('widthGrow', [
state('closed', style({ transform: 'translateX(-100%)' })),
state('open', style({ transform: 'translateX(0%)' })),
transition('* => *', animate(250))
]),
]
})
export class SlideInComponent implements OnInit {
@Input() header: string;
@Input() template: TemplateRef<any>;
state = "closed";
constructor() { }
ngOnInit(): void {
}
changeState(): void {
(this.state == "closed") ? this.state = "open" : this.state = "closed";
}
}
我想做的是来自另一个组件,我有一个像这样的 ng 模板
<button (click)="Open()">Open</button>
<ng-template #filters>
...
</ng-template>
当用户点击打开时,能够在其他组件中传递这个模板
export class Component2Component implements OnInit {
constructor() { }
ngOnInit(): void {
}
Open(): void {
var slideInComp = new SlideInComponent();
slideInComp.changeState();
}
}
这样的最佳设计是什么?我想在其他组件中重用它,但传入不同的模板
【问题讨论】:
标签: angular angular-components