jobSet
如果尚未使用表达式选择a 以供批准,我正在尝试向元素添加一个类。
<li class="approvalUnit" ng-repeat="jobSet in dashboard.currentWork" ng-class="{-1:'approved'}[selectedForApproval.indexOf(jobSet)]">
这并不是一个万无一失的方法。关于我应该如何做到这一点的任何建议?
jobSet
如果尚未使用表达式选择a 以供批准,我正在尝试向元素添加一个类。
<li class="approvalUnit" ng-repeat="jobSet in dashboard.currentWork" ng-class="{-1:'approved'}[selectedForApproval.indexOf(jobSet)]">
这并不是一个万无一失的方法。关于我应该如何做到这一点的任何建议?
您不应该用复杂的逻辑重载模板,这是一种不好的做法。记住要始终保持简单!
更好的方法是将此逻辑提取到您的可重用函数中$rootScope
:
.run(function ($rootScope) {
$rootScope.inArray = function (item, array) {
return (-1 !== array.indexOf(item));
};
})
然后,在您的模板中使用它:
<li ng-class="{approved: inArray(jobSet, selectedForApproval)}"></li>
我想每个人都会同意这个例子更具可读性和可维护性。
在您初始化的某个地方放置此代码。
Array.prototype.contains = function contains(obj) {
for (var i = 0; i < this.length; i++) {
if (this[i] === obj) {
return true;
}
}
return false;
};
然后,您可以这样使用它:
<li ng-class="{approved: selectedForApproval.contains(jobSet)}"></li>