在角度js中使用ng-class中的函数
我使用ng-class
添加CSS类。 即使有很多关于此的文章,我也无法使用ng-class
添加函数调用。
我有一个以下表达式。
ng-class="{'highlighter-row-Class' : (file.id == 1 && file.processed), 'bold-row-Class' : lastSelectedResumeId == file.attributes.name, 'failed-doc': !file.processed}"
现在,可以添加多个类。 但是,我想在这里再添加一个条件,它将调用一个方法并返回一个类名:
$scope.getclass = function() { return 'someclass'; }
我的尝试在最后一个条件之后在ng-class
使用了这个方法,但它没有用。 那么,任何人都可以告诉我如何使用ng-class
正确地完成它?
另一种尝试(建议后):
ng-class="[{'highlighter-row-Class' : (file.id == 1 && file.processed), 'bold-row-Class' : lastSelectedResumeId == file.attributes.name, 'failed-doc': !file.processed }, getClassForHrms(file)]"
function:
$scope.getClassForHrms = function (file) { if (file.attributes.hrmsMandatoryFieldsMissing) { return "missingfieldspresent"; } else if (file.attributes.isDocumentDuplicated) { return "documentduplicate"; } else if (!file.attributes.isDocumentDuplicated) { return "documentuploadfailed"; } };
二手CSS:
.missingfieldspresent { color: red; } .documentduplicate { color: purple; } .documentuploadfailed { color: deeppink; }
这就是生成的HTML呈现的内容
您需要一个类数组 ,其中数组的一个元素可以是具有条件的类的对象,另一个是函数调用。 一个简单的例子是:
ng-class="[{'some_class' : condition}, function_class()]"
这是一个演示:
var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.bb = function() { return "b"; } });
.a { color: #999999; } .b { background-color: #F1F1F1; } .c { font-size: 30px; }
A: color : #999999
C: font-size : 30px Testing classes