Angular2 ngSwitch avec <template> seulement
Je voudrais utiliser ngSwitch conditionnelle, de rendre un peu de contenu, mais je veux que le contenu à être la seule chose à être rendus à la DOM. Je vais illustrer par un exemple.
C'est ce que j'ai actuellement:
<div [ngSwitch]="thing.name">
<template ngSwitchWhen="foo">
<div>FOOOOOO</div>
</template>
<template ngSwitchWhen="bar">
<div>BARRRR</div>
</template>
<template ngSwitchWhen="cat">
<div>CAT</div>
</template>¯
<template ngSwitchWhen="dog">
<div>DOG</div>
</template>
</div>
J'aimerais changer le parent de l'élément à partir d'un <div>
à un <template>
afin que la plupart des éléments internes sont réellement inséré dans les DOM. Je soupçonne que c'est sans doute possible, parce que je sais que vous pouvez faire quelque chose comme ça avec ngFor
, c'est à dire:
<template ngFor [ngForOf]="things" let-thing="$implicit">
Cependant, je n'ai pas été en mesure de travailler sur la façon dont je pourrais l'obtenir pour travailler sur un ngSwitch
OriginalL'auteur Hendrik | 2016-06-09
Vous devez vous connecter pour publier un commentaire.
Est désormais pris en charge depuis la sortie de la version finale. Le code suivant peut être appliqué à votre exemple :
Voir la documentation pour plus d'info
[ngSwitchCase]="chat" va chercher une varible nommé
cat
Comment voulez-vous faire ce travail avec
ngSwitchDefault
?utilisation
ng-template
oung-container
au lieu detemplate
. docsRouge</p> <div *ngSwitchCase="toto">FOOOOOO</div> <div *ngSwitchCase="barre">BARRRR</div> <div *ngSwitchCase="chat">CHAT</div> <div *ngSwitchCase="chien">CHIEN</div> <p *ngSwitchDefault>univers..</p> </div>
OriginalL'auteur Ismail H
Si vous souhaitez supprimer la balise englobante, vous pouvez utiliser gn-conteneur au lieu de div. Alors à vous de fournir tout ce que vous voulez à l'intérieur de l'interrupteur de cas (ci-après 'les divs'). Grâce à @Stéphane Leger pour l'astuce
OriginalL'auteur Flavien Volken
Qui n'est pas pris en charge. Voir ce problème https://github.com/angular/angular/issues/3306
À partir de ce commentaire https://github.com/angular/angular/issues/3306#issuecomment-125368361
OriginalL'auteur Günter Zöchbauer
Comme Angulaire 6
ng-template
outemplate
dos fonctionne pas utiliserng-container
OriginalL'auteur Pranoy Sarkar
OriginalL'auteur Zeeshan Ali