如何获得对单个 Angular 组件的可寻址性?

How to get addressibility to individual Angular components?

环境: Angular 7 使用 ng-select 组件。

场景: *ngFor 创建一个 ng-select 组件列表如下:

<div *ngFor="let address of addresses">
  <ng-select    
     [items]="address.cities"
     bindLabel="name"
     bindValue="id">
  </ng-select>
</div>

ng-select 组件有我需要调用的方法。我如何获取 ngSelect 实例的每个实例以便从模型端调用这些方法。

我能够在 DOM 中看到分解的 htmlelements 但我不想遍历 DOM 我只想调用某些 ng-select 方法但是不要' 知道如何从模型中获取组件的实例。

方法调用的一个例子是:

instanceOfNgSelect.HandleClear();

我想要访问从 *ngFor 创建的任何实例...

如果我没理解错的话,你想打4个中的第2个?如果是这样,您是否尝试在循环时启动索引? *ngFor="auth of authors, let i = index;",这样就可以传索引,根据索引来识别。

鉴于:

<div *ngFor="let address of addresses">
  <ng-select    
     [items]="address.cities"
     bindLabel="name"
     bindValue="id">
  </ng-select>
</div>

获取上述任何 ng-selects 的可寻址性的最佳方法是在模型中使用 ViewChildren 装饰器:

@ViewChildren(NgSelectComponent) NgSelectComponents: QueryList<NgSelectComponent>;

然后在 ngAfterViewInit() 中:

  this.NgSelectComponents.forEach(ngselect=>{
     debugger;
    });