web-dev-qa-db-fra.com

Qu'est-ce que $ implicite dans angular 2?

Comment le mot clé suivant est-il utilisé dans angular2 ng-templates

  • Quel est l'objectif de $implicit dans les modèles angulaires 2? 
  • Quelle est la relation entre let-<attribute> et $implicit?
17
Mantu Nigam

Vous pouvez définir une variable locale sur ng-template à let-name

Quand angular crée un modèle en appelant createEmbeddedView, il peut également transmettre le contexte qui sera utilisé dans ng-template.

L'utilisation de la clé $implicit dans l'objet contexte définira sa valeur par défaut. Donc si on écrit:

vcRef.createEmbeddedView(template, { $implicit: 'value' })

et nous avons un modèle

<ng-template let-foo> 
 {{ foo }}
</ng-template>

alors on peut y penser comme

<ng-template let-foo="$implicit"> 
  {{ foo }}
</ng-template>

alors foo sera égal à value

Exemple Plunker

Par contre si nous avons un contexte comme:

{ bar: 'value' }

nous devons déclarer une variable comme:

let-foo="bar"
30
yurzui
For multiple variables, you should do something like below,
A template would be:

<ng-template [ngTemplateOutlet]="template" [ngTemplateOutletContext]="{$implicit: 'Hello', key2: 'value2', key3: 'value3'}"> </ng-template>

then

<ng-template #template let-default let-key2="key2" let-key3="key3">
{{default}}
{{key2}}
{{key3}}
</ng-template>

so, output will be, 
default = Hello
key2 = value2
key3 = value3