Ich möchte Richtlinien in den bedingt eine Richtlinie zu einer Komponente hinzufügen (wo au-disabled
, au-accented
und au-focused
sind die Richtlinien) bedingt in:Wie Angular 2
<template [ngIf]="disabled">
<au-placeholder au-disabled></au-placeholder>
</template>
<template [ngIf]="accented">
<au-placeholder au-accented></au-placeholder>
</template>
<template [ngIf]="focused">
<au-placeholder au-focused></au-placeholder>
</template>
Der obige Ansatz funktioniert (und etwas akzeptabel zu mir) weil (in meinem Fall) die bedingten Eigenschaften disabled
, accented
und focused
sich gegenseitig ausschließen - meine Frage entsteht in Fällen, in denen die bedingten Eigenschaften sich nicht gegenseitig ausschließen (eine [ngIf]
für jede Permutation erforderlich, um die entsprechende flektierte Form anzuwenden):
<!-- all of the prior <template [ngIf]= ... -->
<!-- plus -->
<template [ngIf]="disabled && accented">
<au-placeholder au-disabled au-accented></au-placeholder>
</template>
<template [ngIf]="disabled && accented && focused">
<au-placeholder au-disabled au-accented au-focused></au-placeholder>
</template>
<!-- etc -->
die folgende verwenden, können meinen Code die Kombinationen mit weniger HTML zu handhaben:
<au-placeholder [au-disabled]="disabled" [au-accented]="accented" [au-focused]="focused"></au-placeholder>
aber das gerenderte HTML immer hat alle Richtlinien jeder trägt einen Wahrheitswert ... muss die Komponente testen die Wahrheitswert jeder Richtlinie, um angemessen zu reagieren, aber es wäre sauberer, nicht einmal irrelevante Richtlinien angewendet zu haben. Gibt es einen besseren Weg, dies zu tun?
OK ... Das ist, was die ' au-placeholder> 'Formular macht ... –
Neoheurist