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