2017-01-30 11 views
0

要素にレンダリングする属性を決定する方法はありますか?たとえば、count変数が5より大きい場合はdivを緑色の背景にするようにスタイルを設定したいが、それ以外の場合はui-viewディレクティブを指定するとします。条件に基づいた要素属性の変更

のは、擬似コード

<div ng-if="count > 5 ? {style='background: green'} : {ui-view='home'}"> 

</div> 

で書かれた非現実的な例を見てみましょうが、このもっともらしいですか?私は間違った方法に近づいているかもしれませんが、これができるかどうかを知りたがっています(私はカスタムディレクティブが助けてくれると思っていますが、できるだけ軽量にしたいと思っています)

+0

NG-クラス/ ngのスタイル。私のudpated答えを参照してください – AlainIb

答えて

0

あなたが簡単に行うことができます:私が使用することをお勧めコードの重複を避けるために

<div ng-if="myCondition"></div> 
<div ng-if="!myCondition" ui-view></div> 

はNG-含ま:

<ng-include src="template"></ng-include> 
+0

を更新しましたが、これはうまくいくでしょうが、divの内容は大きなHTMLだと想像してください。コードを複製する必要があります。 ng-class/ng-styleは彼のケースに合わせて調整されています – AlainIb

+0

これは私がちょうど2行で欲しいものです!ありがとうございます。 –

+0

ng-ifでスタイルを設定することはできません。 ng-ifは、htmlパーツをdomに追加するかどうかに使用されます – AlainIb

0

は、はい、NG-クラスは、クラス名

<div class="base-class" ng-class="myVar">Sample Text</div> 

またはngのスタイルのための変数を使用できるよう

<div ng-class="{{ 'green' : (count > 5) ; 'red' : (count != 5) }}"> 

</div> 
// where green and red is class name not style 

のために作られている http://plnkr.co/edit/pCplLBymY1nmX7Bmb0uO?p=preview

<span ng-style=" count > 5 ? { 'background-color':'red' } : { 'background-color':'green' }" >Sample Text</span> 
+0

申し訳ありませんが、私の質問は完全にはっきりしていない - 私は1つの属性をスタイルするのではなく、完全に条件に基づいて要素の属性を交換する。 質問 –

関連する問題