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>