Javascript 优化AngularJS ngHide属性 PO#[[inactive.poNumber]]
我想优化代码 如果getStatusIcon(inactive.currentStatus.code).statusDesc(过期,拒绝) 我们正在隐藏span标签。现在我们正在调用该函数3次。 是否有方法检查getStatusIcon(inactive.currentStatus.code).statusDesc(过期,拒绝)。Javascript 优化AngularJS ngHide属性 PO#[[inactive.poNumber]],javascript,angularjs,angularjs-ng-repeat,Javascript,Angularjs,Angularjs Ng Repeat,我想优化代码 如果getStatusIcon(inactive.currentStatus.code).statusDesc(过期,拒绝) 我们正在隐藏span标签。现在我们正在调用该函数3次。 是否有方法检查getStatusIcon(inactive.currentStatus.code).statusDesc(过期,拒绝)。 仅调用函数一次。您可以使用ng init仅调用函数一次: <span ng-hide="(getStatusIcon(inactive.currentStat
仅调用函数一次。您可以使用ng init仅调用函数一次:
<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>
PO#[[inactive.poNumber]]
然后,您可能应该在控制器中放置分区
<span ng-init="statusDesc = getStatusIcon(inactive.currentStatus.code).statusDesc"
ng-hide="(statusDesc) =='Expired' ||
(statusDesc) =='Rejected' ||
(statusDesc) =='Refused'">
PO# [[inactive.poNumber]]
</span>
PO{{inactive.poNumber}
函数mainCtrl($scope){
$scope.isInvalidStatusDesc=函数(statusDesc){
开关(状态描述){
“过期”案例:
“驳回”案件:
“拒绝”一案:
返回true;
违约:
返回false;
}
};
}
编写一个在控制器中执行此操作的JS函数。您的代码不可读,请尝试在多行上重新组织它(您也可以通过这样做来解决问题)。
<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;
}
};
}