2016-09-20 12 views
1

私はAngularJSを初めて使いました。私はそれを使用したい効果をどのように作成するのかよくわかりません。AngularJSを使用して動的にCSSスタイルを更新

2つの要素の値を比較し、その比較に基づいて要素のCSSを条件付きで更新したいと考えています。

これはjQueryやVanilla JSと非常に簡単ですが、Angularアプリでどのように同じことを達成できるかはわかりません。

私のコードを削除すると、これは基本的に変更する必要があります。

HTML:

<table> 
    <thead> 
    <tr> 
     <th>Minimum Price</th> 
     <th>New Price</th> 
    </tr> 
    </thead> 
    <tbody> 
     <td ng-bind="sku.MinimumPrice"></td> <!-- value one --> 
     <td> 
     <input ng-model="sku.NewPrice" id="price-input"> <!-- value two --> 
     </td> 
    </tbody> 
</table> 

擬似コード:

if (sku.NewPrice > sku.MinimumPrice) { 
    #price-input.style.color='red' 
} 

ので、これを実装する '角度' の方法は何ですか?

+1

HTMLのnewPriceInputElementはどこにありますか? –

+0

@DavidRはとなるので、私はそれをより明確にするために質問を編集します。 –

答えて

2

Using ng-style tag

<input ng-model="MinimumPrice"/> 
<input ng-model="NewPrice"/> 
<p ng-style="getStyle()"> 
Text 
</p> 

function MyCtrl($scope) { 

    $scope.getStyle = function(){ 
     var color = 'black'; 

     if ($scope.NewPrice > $scope.MinimumPrice) { 
      color = 'red'; 
     } 

     return {'color': color}; 
    } 

} 
+0

ええ、最も良い方法は、コントローラとngStyleを使用することです。 –

1

角度は、この目的のためにngStyleを持っています。この属性を使用すると、式や条件を使用してCSSをdinamycally変更することができます。

またはngClassを使用すると、すべてのDOMクラスをdinamycally変更できます(これが良いと思います)。 ngClassため

Ussageは次のとおりです。

<ANY ng-class="{class: condition}"> 

そう...

のstyle.css

.red { 
    color: red; 
} 

Template.html

<input ng-model="sku.NewPrice" id="price-input" ng-class="{red: sku.NewPrice > sku.MinimumPrice}" 

希望:

関連する問題