Ng-classを使用して2つのクラスを追加する必要があります。1つのクラスは関数で取得し、もう1つは式で取得する必要があります-以下は使用しているコードですが、構文エラーが発生します-
<div class="field-icon" ng-class="getFieldClass(entry.entry_type_id) , 'used': entry_map[entry.guid] > 0" ></div>
関数と式を一緒に使用できる場合、正しい構文は何でしょうか。
ng-class
構文が間違っていました。ng-class="{'used': expression2 }"
のようなJSON形式である必要があります。式は、クラスが追加または削除されることに基づいてBoolean
を返しますattribute
値。
getFieldClass
メソッドがクラス名を返すので、getFieldClass
メソッドで両方のクラスロジックをシフトできます。
マークアップ
<div class="field-icon"
ng-class="getFieldClass(entry)" ></div>
コード
$scope.getFieldClass = function(entry){
//use entry.entry_type_id here to decide class which is first
//'text-box-icon' class has been selected on some condition based on entry.entry_type_id
return {"text-box-icon": true, 'used': $scope.entry_map[entry.guid] > 0};
}
関数と式の両方を配列に書き込むことができます。
例:
<div class="field-icon" ng-class="[getFieldClass(entry.entry_type_id), {'used':entry_map[entry.guid] > 0}]"></div>
ここでの実例: https://plnkr.co/edit/OWfkAwJiombrehiS7p9o?p=preview