Angularjs ng基于列表值隐藏/显示
当列表中所有保险的承保范围为零值或负值时,我需要隐藏“当前保险范围”。如果列表中的任何一个保险范围是正值,那么我只需要显示“当前保险范围”一次 我试过这样的东西,但现在没有运气了Angularjs ng基于列表值隐藏/显示,angularjs,angularjs-ng-repeat,Angularjs,Angularjs Ng Repeat,当列表中所有保险的承保范围为零值或负值时,我需要隐藏“当前保险范围”。如果列表中的任何一个保险范围是正值,那么我只需要显示“当前保险范围”一次 我试过这样的东西,但现在没有运气了 <li ng-repeat="cover in accSummary.response.covers"> <div class="account-detail-row col-xs-12 col-sm-12 col-md-12 padding-left12 padding-right12 pa
<li ng-repeat="cover in accSummary.response.covers">
<div class="account-detail-row col-xs-12 col-sm-12 col-md-12 padding-left12 padding-right12 padding-top24 padding-bottom12">
<h4 class="font-16 fontwt-400" ng-hide="cover.coverAmt <= 0">Current insurance cover</h4>
</div>
</li>
当前保险范围
谁能帮我一下吗。。!谢谢。首先,如果您有
h4
当前的保险范围,请在ng repeat
范围内。如果有多个正值,则标题将出现多次
至于计算本身。。。在控制器中执行此操作,然后执行以下操作:
<li ng-repeat="cover in accSummary.response.covers">
<div class="account-detail-row">
{{ cover.Something }}
</div>
</li>
<h4 ng-hide="isCurrent">Current insurance cover</h4>
{{cover.Something}}
当前保险范围
因此,在ajax请求/承诺成功的情况下,您可以这样做:
var total = 0;
$http({ // or whatever request mechanism you're using
url: someURL,
method: "POST",
data: "{}",
headers: { 'Content-Type': 'application/json' }
})
.success(function (data) {
angular.forEach(data.accSummary, function(value, key) {
total += data.accSummary["coverAmt"]
})
})
.finally(function() {
$scope.isCurrent = total <= 0;
})
var总计=0;
$http({//或您正在使用的任何请求机制
url:someURL,
方法:“张贴”,
数据:“{}”,
标题:{'Content-Type':'application/json'}
})
.success(函数(数据){
angular.forEach(data.accSummary,函数(值,键){
总计+=数据。会计科目汇总[“覆盖率”]
})
})
.finally(函数(){
$scope.isCurrent=total尝试使用``ng if``来控制当前保险范围的可见性。但是在ng repeat的初始阶段,运行一个调用来循环数组以测试您的案例
下面是一个示例,说明了这一点:
HTML:
<li ng-repeat="cover in accSummary.response.covers" ng-init="checkCover()">
<div class="account-detail-row col-xs-12 col-sm-12 col-md-12 padding-left12 padding-right12 padding-top24 padding-bottom12">
<h4 class="font-16 fontwt-400" ng-if="visible">Current insurance cover</h4>
</div>
</li>
$scope.visible = false;
$scope.checkCover = function() {
angular.forEach(accSummary.response.covers, function(cover) {
if(cover.coverAmt > 0) { $scope.visible = true; return true; }
}
return false;
}
您必须在控制器中按如下方式计算:
app.controller("cover", function($scope){
$scope.covers = [{coverAmt: 10},{coverAmt: 0},{coverAmt: -1}];
$scope.showHeading = function(){
var flag = false;
for(var i=0; i<$scope.covers.length; i++)
{
if($scope.covers[i].coverAmount > 0)
{
flag = true;
break;
}
}
return flag;
};
});
app.controller(“封面”),功能($scope){
$scope.covers=[{coverAmt:10},{coverAmt:0},{coverAmt:-1}];
$scope.showHeading=函数(){
var标志=假;
对于(变量i=0;i 0)
{
flag=true;
打破
}
}
返回标志;
};
});
HTML将是
<h4 class="font-16 fontwt-400" ng-show="showHeading();">Current insurance cover</h4>
当前保险范围
我认为它应该是“cover.coverAmt”而不是“el.coverAmt”。同样,在循环内返回也不是一个好主意。接球不错。我做了调整
app.controller("cover", function($scope){
$scope.covers = [{coverAmt: 10},{coverAmt: 0},{coverAmt: -1}];
$scope.showHeading = function(){
var flag = false;
for(var i=0; i<$scope.covers.length; i++)
{
if($scope.covers[i].coverAmount > 0)
{
flag = true;
break;
}
}
return flag;
};
});
<h4 class="font-16 fontwt-400" ng-show="showHeading();">Current insurance cover</h4>