商品情報が表示されているとします。私は価格が50未満の場合は、アイテムの色が赤でなければなりません。価格が50以上の場合、アイテムの色は黄色でなければならず、価格が50以上(50×60/100)以上であればアイテムの色は緑色になります。今私はそれが最良の方法で達成できるか教えてください。それを完了するための最善のアプローチで私を導く。ng-classに複数の条件を入れる方法
このように私は試みましたが、ng-repeatで作業すると汚れたチェックのために繰り返しが繰り返されることを知りました。私のコードを見て、ng-classに複数の条件を入れてクラスを動的に設定する方法を教えてください。
<div ng-app="myApp">
<ul ng-controller="MyController">
<li ng-class="setColor(item.price)" ng-repeat="item in products">{{item.name}} — {{item.price}}</li>
</ul>
</div>
var myApp = angular.module('myApp', []);
myApp.controller('MyController', function MyController($scope) {
$scope.setColor = function(price) {
alert(price);
}
$scope.products = [
{
'name' : 'Xbox',
'clearance' : true,
'price' : 30.99,
},
{
'name' : 'Xbox 360',
'clearance' : false,
'salesStatus' : 'old',
'price' : 99.99,
},
{
'name' : 'Xbox One',
'salesStatus' : 'new',
'price' : 50,
},
{
'name' : 'PS2',
'clearance' : true,
'price' : 79.99,
},
{
'name' : 'PS3',
'salesStatus' : 'old',
'price' : 99.99,
},
{
'name' : 'PS4',
'salesStatus' : 'new',
'price' : 20.99,
}
]
})
ng-classから関数を呼び出すことなく教えてください。ng-classにelse if条件を複数入れることはできますか?
if price > 50
return "css-class-yello"
else if price < 50
return "css-class-red"
else if price > (50+(50*60/100))
return "css-class-green"
可能であれば、コードで案内してください。おかげ
あなたの表現は、コントローラ機能することができます。または、各クラスごとに異なる表情を持つことができます。 – isherwood
私の最後のelseを見て、サンプルコードでng-classにこのように条件を適用する方法を教えてください。 – Mou
Robの答えを見てください。それが私が得たものです。 ) – isherwood