带有* ngFor的Angular 2模板引用变量

时间:2016-11-26 15:10:41

标签: angular

我有两个组成部分:列表和详细信息

列表组件中,我想渲染多个详细信息组件

list.component.ts

@Component({
    selector: 'detail',
    templateUrl: './detail.component.html'
})
export class DetailComponent {
    @ViewChild('details') details;

    public items = {
        // ...
    }
}

list.component.html

<detail *ngFor="let item of items" #details></detail>

注意 #details tempalte引用变量。我想访问所有细节组件。可以将 #details 变量设为数组吗?

1 个答案:

答案 0 :(得分:7)

@ViewChildren('details') details:QueryList<DetailComponent>;

ngAfterViewInit() {
  console.log(this.details.toArray());
  this.details.changes.subscribe(changes => {
    console.log(this.details.toArray());
  });
}

另见angular 2 / typescript : get hold of an element in the template