如何检查数组中的数组是否有任何值(angularjs)

时间:2018-08-17 05:50:19

标签: angularjs

在另一个数组(内容)中有一个数组contentMetaDataList,其中包含很少的字段,如标题,名称等。因此,当没有标题显示时,如何隐藏标题(智能标签:写在p标签中)。

     

智能标签:

                                  {{relatedcontent.title}}                  

2 个答案:

答案 0 :(得分:1)

您可以使用ng-show来按条件显示/隐藏, 并检查数组中的所有对象是否都包含标题字段,可以使用Array.every()

如果注释或删除数组中的标题之一,则显示标题的包装器<div>将不可见,而是保留在DOM树中。 (可以通过ng-if从DOM树中删除)

var app = angular.module('myApp', []);
app.controller('MainCtrl', ['$scope','$http', function($scope, $http){
$scope.a = 'sdf';
  
  $scope.contentMetaDataList = [
    {
      title:"legislation_title",
      fieldValue:"refund of tax to certain persons",
      id:94346
    }, 
    
    {
      title:"Enterprise_title",
      fieldValue:"refund of tax to certain persons",
      id:94346
    },
    
    {
      title:"Related_title",
      fieldValue:"refund of tax to certain persons",
      id:94346
    }];
  
   $scope.checkTitle = function() {
      return $scope.contentMetaDataList.every(item => item.title);
   }
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.3/angular.min.js"></script>
<div ng-app="myApp">
  <div ng-controller="MainCtrl">
        <div>
          
          <div ng-show="checkTitle()">
            <p>Smart Tags : </p> 
            <div ng-repeat="relatedcontent in contentMetaDataList">
                  <div>
                      {{relatedcontent.title}}
                  </div>
             </div>
          </div>
        </div>
  </div>
</div>

有关更多信息:

ng-show
Array.every()
ng-if

答案 1 :(得分:0)

我会说添加一个<span>或一些带有ngIf的标签。 *ngIf="relatedcontent.title !== undefined"