import { Component, ViewChildren, ContentChild, QueryList, Input, NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; @Component({ selector: 'active-label', template: ` Active ` }) class ActiveLabelComponent { active: boolean; activate() { this.active = true; } } // #docregion content @Component({ selector: 'a-hero', template: `

{{hero.name}}

` }) class HeroComponent { @Input() hero: any; active: boolean; @ContentChild(ActiveLabelComponent) label: ActiveLabelComponent; activate() { this.active = true; this.label.activate(); } } // #enddocregion content // #docregion view @Component({ selector: 'heroes-queries', template: ` ` }) class HeroesQueriesComponent { heroData = [ {id: 1, name: 'Windstorm'}, {id: 2, name: 'Superman'} ]; @ViewChildren(HeroComponent) heroCmps: QueryList; activate() { this.heroCmps.forEach( (cmp) => cmp.activate() ); } } // #enddocregion view @NgModule({ imports: [ BrowserModule ], declarations: [ HeroesQueriesComponent, HeroComponent, ActiveLabelComponent ], bootstrap: [ HeroesQueriesComponent ] }) export class HeroesQueriesModule { }