2016-08-03 5 views
11

にディレクティブを追加する方法:上記のアプローチの作品(と条件付きで、私は条件付きで(<code>au-disabled</code>、<code>au-accented</code>、および<code>au-focused</code>が指令されている)コンポーネントにディレクティブを追加したい角度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> 

多少許容され(私の場合)条件付きプロパティdisabledaccented、およびfocusedは相互に排他的ですから - 私の質問は、条件付きプロパティが相互排他的でない場合に発生します(対応する屈折形式を適用するすべての置換に対して[ngIf]が必要です)。

...コンポーネントをテストしなければならない

<au-placeholder [au-disabled]="disabled" [au-accented]="accented" [au-focused]="focused"></au-placeholder> 

が、レンダリングされたHTMLは常に真理値を持つディレクティブそれぞれのすべてを持っている:次のように使用して

<!-- 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 --> 

は私のコードは、以下のHTMLとの組み合わせを処理することができます各ディレクティブの真理値は適切に対応していますが、無関係なディレクティブを適用しなくてもクリーンです。これを行うより良い方法はありますか?

答えて

3

これはサポートされていません。 コンポーネントのみを条件付きで追加/削除できます。

あなたができることは、指示が何もしてはならないことを認識させるための値を渡すことです。

https://github.com/angular/angular/issues/5332

+1

OKも参照してください...それは何 ' 'フォームがやっている... – Neoheurist

関連する問題