如何在ng-hide和ng-show中应用条件 - AngularJs

时间:2016-07-14 10:09:20

标签: angularjs

我正在创建一个angularjs应用程序,在此我想最小化并最大化一个盒子。

现在我想在点击时隐藏一个div并打开另一个div

             <div class="msg" ng-hide="msg_div">
                    <a ng-click="msg_div = true"></a>
                some content
            </div>

             <div class="body" ng-show="body_div">
                  <a ng-click="body_div = true"></a>
              </div>

现在我想在隐藏第一个div上显示第二个div,反之亦然(显示隐藏第二个div的第一个div)。

任何形式的帮助都会得到满足。提前致谢

3 个答案:

答案 0 :(得分:2)

这个怎么样:

所以你几乎有一个你切换的布尔值。一个div隐藏,如果它是真的,另一个隐藏,如果它是假的。

而且,在控制器中尝试做任何逻辑总是更好。

angular.module('app', []).controller('PageController', function($scope) {
  $scope.showTopPanel = true;

  $scope.togglePanels = function() {
    $scope.showTopPanel = !$scope.showTopPanel;
  }
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="app" ng-controller="PageController">
  <div class="msg" ng-show="showTopPanel">
    <a ng-click="togglePanels()"><b>click to toggle</b></a>
    <div>
      top panel
    </div>
  </div>

  <div class="body" ng-hide="showTopPanel">
    <a ng-click="togglePanels()"><b>click totoggle</b></a>
    <div>
      bottom panel
    </div>
  </div>
</div>

答案 1 :(得分:1)

试试这个

 <div class="msg" ng-hide="msg_div">
        <a ng-click="msg_div = true"></a>
    some content
</div>

 <div class="body" ng-show="msg_div">
      <a ng-click="msg_div = false"></a>
  </div>

答案 2 :(得分:0)

只需在模板中调用函数而不是设置变量,这样您就可以获得更多控制权:

 <a ng-click="msg_div_click()"></a>

并在您的控制器中

$scope.msg_div_click = function(){
 $scope.msg_div = true;
 $scope.body_div = false;
}