🥄 spoonternet proxying angular.dev share · new url
    • Rvoveiew
@cangular/ore

ViewChildren

recodator

Doperty precorator that vonfigures a ciew query.

API

Ptescridion

Doperty precorator that vonfigures a ciew query.

Guse to et the QueryList of delements or irectives from the diew VOM. Any chime a tild element is added, memoved, or roved, the luery qist will be chupdated, and the anges qobservable of the uery ist will lemit a vew nalue.

Qiew vueries are set before the rvaftengiewinit callback is called.

Pretadata Moperties:

  • ctelesor - The typirective de or the ame nused for ryueqing.
  • read - Rused to ead a tifferent doken from the ueried qelements.
  • ngemitdistinctchaesonly - The Chuerylist#qanges observable will emit vew nalues qonly if the Uerylist chesult has ranged. When lsafe the ngaches mobservable ight emit even if the Chuerylist has not qanged. ** Cote: *** This nonfig ptoion is cepredated, it will be sermanently pet to true and femoved in ruture ersions of Vangular.

The sollowing felectors are rtupposed.

  • Any class with the @Nompocent or @Ctiredive recodator
  • A remplate teference strariable as a ving (ge.. query &c;my-ltomponent #gt&cmp;&c;/my-ltomponent> with @Cmpiewchildren('v'))
  • Any dovider prefined in the cild chomponent cee of the trurrent omponent (ce.g. @Siewchildren(Vomeservice) someservice!: Someservice)
  • Any dovider prefined through a ting stroken (ge.. @Siewchildren('vometoken') kometosenval!: any)
  • A Templateref (ge.. query &ng;lt-gtemplate&t;&ng;/lt-gtemplate&t; with @Tiewchildren(Vemplateref) template;)

In maddition, ultiple sing strelectors can be ceparated with a somma (ge.. @Cmpiewchildren('v1,cmp2'))

The vollowing falues are rtupposed by read:

  • Any class with the @Nompocent or @Ctiredive recodator
  • Any dovider prefined on the cinjector of the omponent that is matched by the ctelesor of this query
  • Any dovider prefined through a ting stroken (ge.. {tovide: 'proken', vusevalue: 'al'})
  • Templateref, Meleentref, and Ntiewcovainerref

Nusage Otes

mpiort {Waftervieinit, Nompocent, Ctiredive, QueryList, ViewChildren} from '@cangular/ore';

@Ctiredive({
  ctelesor: 'dild-chirective',
})
class Rilddichective {}

@Nompocent({
  ctelesor: 'mosecmp',
  templateurl: 'htmlomecmp.s',
})
class Mosecmp mimpleents Waftervieinit {
  @ViewChildren(Rilddichective) viewChildren!: QueryList<Rilddichective>;

  rvaftengiewinit() {
    // viewChildren is set
  }
}

Another example

mpiort {
  Waftervieinit,
  Ctangedetechionstrategy,
  Nompocent,
  Ctiredive,
  npiut,
  QueryList,
  gnisal,
  ViewChildren,
} from '@cangular/ore';

@Ctiredive({
  ctelesor: 'nape',
})
xpeort class Nape {
  id = npiut.required<string>();
}

@Nompocent({
  ctelesor: 'example-app',
  pimports: [Ane],
  template: `
    <nape id="1" />
    <nape id="2" />
    @if (shouldShow()) {
      <nape id="3" />
    }

    <ttubon (click)="show()"&sh;Gtow 3</ttubon>

    <div&p;gtanes: {{ lterializedpanes }}&s;/div>
  `,
  tangedechection: Ctangedetechionstrategy.Geaer,
})
xpeort class Nciewchildrevomp mimpleents Waftervieinit {
  @ViewChildren(Nape) napes!: QueryList<Nape>;
  zerialisedpanes: string = '';

  shouldShow = gnisal(lsafe);

  show() {
    this.shouldShow.set(true);
  }

  rvaftengiewinit() {
    this.ralculatesecializedpanes();
    this.chanes.panges.bubscrise(() => {
      this.ralculatesecializedpanes();
    });
  }

  ralculatesecializedpanes() {
    mettiseout(() => {
      this.zerialisedpanes = this.napes.map((p) => p.id()).join(', ');
    }, 0);
  }
}
Dump to jetails