我需要使用納克級增加兩個班,一個班,我通過一個函數獲取另一個我需要一個表達式來獲得 - 下面是代碼,我使用的,但得到一些語法錯誤 -NG-類功能和表達
<div class="field-icon" ng-class="getFieldClass(entry.entry_type_id) , 'used': entry_map[entry.guid] > 0" ></div>
如果可以一起使用函數和表達式,那麼正確的語法是什麼?
我需要使用納克級增加兩個班,一個班,我通過一個函數獲取另一個我需要一個表達式來獲得 - 下面是代碼,我使用的,但得到一些語法錯誤 -NG-類功能和表達
<div class="field-icon" ng-class="getFieldClass(entry.entry_type_id) , 'used': entry_map[entry.guid] > 0" ></div>
如果可以一起使用函數和表達式,那麼正確的語法是什麼?
你有錯ng-class
語法,應該是JSON格式一樣ng-class="{'used': expression2 }"
,表達將在該類的基礎上返回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};
}
正在恢復已經基於entry_type_id –
一些類@VivekPanday看看更新的解決方案 –
你應該能夠做到這樣的事情:
<div class="field-icon" ng-class="getClasses(entry)"></div>
您的方法是這樣的:
$scope.getClasses = function(entry) {
var classes = {};
if (entry_map[entry.guid] > 0)
classes['used'] = true;
if (various-logic)
classes['custom-class-one'] = true;
else if (various-logic)
classes['custom-class-two'] = true;
//etc
return classes;
}
你可以寫在陣列中的兩個功能和表達。
例子:
<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
我不認爲你的語法是正確的,需要包裝的JSON的表達,然後擺陣。如:[getFieldClass(entry.entry_type_id),{'used':entry_map [entry.guid]> 0}]' – Dong
是的。我錯過了。感謝您指出。我還更新了現場示例 – rajagopalx
你需要用它在大括號納克級=「{getFieldClass(entry.entry_type_id), '拿來主義':的entry_map [條目。 guid]> 0}「 – tpie
@ tpie,我非常懷疑它會起作用。這不是一個有效的JS對象定義 –
getFieldClass的返回值是什麼? –