我正在使用动态组件加载器来显示带有 *ngFor 的组件列表:
<div [dragula]='"bag-one"' [dragulaModel]='types'>
<div *ngFor="let component of types; let i = index">
<dcl-wrapper [type]="component" [index]="i"></dcl-wrapper>
</div>
</div>
类型为数组:types = [ TestAComponent, TestBComponent, TestCComponent];
在 dcl-wrapper 组件中,我已经能够访问组件的索引,但我无法弄清楚如何输出组件的名称。如果您想要所有代码,我以this question中的这个plnkr为例,但是对于这部分的相关代码如下所示:
export class DclWrapperComponent {
@ViewChild('target', {read: ViewContainerRef}) target;
@Input() type;
@Input()
set name(component: string){
this.name = component;
}
@Input()
set index(i: number){
this._index = i;
console.log("Item index changed: ", this._index, this.name);
}
...
我得到:
Item index changed: 0 undefined
Item index changed: 1 undefined
Item index changed: 2 undefined
谁能解释我哪里出错了?或者,如果您知道一种更好的方法来获取正在移动的组件的名称/ID/任何内容,我很想听听。