<span ng-hide="(getStatusIcon(inactive.currentStatus.code).statusDesc) =='Expired' ||
(getStatusIcon(inactive.currentStatus.code).statusDesc) =='Rejected' ||
(getStatusIcon(inactive.currentStatus.code).statusDesc) =='Refused'">
PO# [[inactive.poNumber]]
</span>
我想优化代码 如果getStatusIcon(inactive.currentStatus.code).statusDesc是(已过期,拒绝被拒绝) 我们正在隐藏span标签。现在我们正在调用该函数3次。 有没有办法检查getStatusIcon(inactive.currentStatus.code).statusDesc in(已过期,拒绝拒绝)。 仅调用该函数一次。
答案 0 :(得分:1)
您可以使用ng-init仅调用一次函数:
<span ng-init="statusDesc = getStatusIcon(inactive.currentStatus.code).statusDesc"
ng-hide="(statusDesc) =='Expired' ||
(statusDesc) =='Rejected' ||
(statusDesc) =='Refused'">
PO# [[inactive.poNumber]]
</span>
然后你应该将你的比较放在控制器中。
<span ng-init="statusDesc = getStatusIcon(inactive.currentStatus.code).statusDesc"
ng-hide="isInvalidStatusDesc(statusDesc)">
PO# {{inactive.poNumber}}
</span>
function mainCtrl($scope) {
$scope.isInvalidStatusDesc = function(statusDesc) {
switch (statusDesc) {
case 'Expired':
case 'Rejected':
case 'Refused':
return true;
default:
return false;
}
};
}