Angular JS - 显示/隐藏动态表的一些行

时间:2016-04-28 06:58:52

标签: javascript html css angularjs

我有一个看起来像这样的json对象

{
"entityType": "ABC",
"entityId": "1234",
"transactionId": "fdsfs1234",
"modifiedDate": 1460778320876,
"modifiedBy": "pratik",
"modifyingService": "XYZ",
"modifyingAPI": "update"
}

使用这个json我使用ng-repeat创建div列表。这是代码:

<div class="" layout="row" ng-repeat="(key, value) in Detail">
      <div layout="row" class="tableDiv">
          <div class="fixTdDivKey" ng-if="shouldDisplayKey(key)">
                            <label>{{key}}</label>
           </div>
           <div class="fixTdDivValue" ng-if="shouldDisplayValue(key)">
              <div class="preDiv">{{value}}</div>
           </div>
      </div>
</div>

现在当加载它时我想根据键名隐藏一些div,然后当我点击按钮说(显示基本)时应该显示所有这些div,当我点击按钮时再次隐藏(隐藏基本)

有人可以指点我正确的方向吗?

由于

1 个答案:

答案 0 :(得分:1)

试试这个,它会帮助你

&#13;
&#13;
var app = angular.module("mainApp", []);

app.controller('mainCtrl', function($scope) {
  $scope.Detail = {
    "entityType": "ABC",
    "entityId": "1234",
    "transactionId": "fdsfs1234",
    "modifiedDate": 1460778320876,
    "modifiedBy": "pratik",
    "modifyingService": "XYZ",
    "modifyingAPI": "update"
  }
  $scope.notToDisplay = ['modifyingAPI', 'modifyingService'];
  $scope.shouldDisplayKey = function(key) {
    return ($scope.notToDisplay.indexOf(key) != -1) ? false : true;
  };
  
  $scope.show = function(key){
    var indexOf = $scope.notToDisplay.indexOf(key);
    if(indexOf != -1){
        $scope.notToDisplay.splice(indexOf, 1);
    }
    else{
      $scope.notToDisplay.push(key);
      }
  };
});
&#13;
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="mainApp" ng-controller="mainCtrl">
  <div class="" layout="row" ng-repeat="(key, value) in Detail">
    <div layout="row" class="tableDiv" ng-show="shouldDisplayKey(key)">
      <div class="fixTdDivKey">
        <div class="col-xs-3">{{key}}</div>
        <div class="col-xs-8">:&nbsp;{{value}}</div>
      </div>
    </div>
    
    
  </div>
  <a class="btn btn-info"  ng-click="show('modifyingAPI');">{{shouldDisplayKey('modifyingAPI')?'Hide':'Show'}}</a>
</div>
&#13;
&#13;
&#13;