Angularjs toggle div visibility

前端 未结 3 1001
情话喂你
情话喂你 2021-02-02 16:31

I am trying to toggle a div text on click of a button. I tried taking a scope variable and toggeling classname based on the variable. Where am I making the mistake here



        
相关标签:
3条回答
  • 2021-02-02 17:02

    I have changed your directive..

    html

        <button ng-click="toggle()">test </button>
    <div ng-show="state" >
        hello test
    </div>
    

    Controller

    function ctrl($scope) {    
    
        $scope.toggle = function () {
          $scope.state = !$scope.state;
        }; }
    

    see complete code here http://jsfiddle.net/nw5ndzrt/345/

    0 讨论(0)
  • 2021-02-02 17:15

    You can simplify this a lot like so

    <button ng-click="showDiv = !showDiv">test </button>
    <div ng-show="showDiv" >
        hello test
    </div>
    

    Fiddle example

    Unless you need the specific ng-class to toggle in which case you can do something like

    <button ng-click="showDiv = !showDiv">test </button>
    <div ng-class="{'vis' : showDiv }" >
        hello test
    </div>
    

    Fiddle example

    (just make sure you're using a newer version of angular for this)

    0 讨论(0)
  • 2021-02-02 17:15

    Another approach... Use ng-switch
    You can toggle through multiple divs without the css hassle...

    var myApp = angular.module('myApp',[]);
    
    function MyCtrl($scope) {
     
    }
    <script src="https://code.angularjs.org/angular-1.0.1.js"></script>
    <body ng-app="myApp">
    <div ng-controller="MyCtrl">
    	<button ng-click="showDiv = !showDiv">test </button>
    	<div ng-switch="showDiv" >
    	  <div ng-switch-default>
    		hello you
    	  </div>
    	  <div ng-switch-when=true>
    		hello me
    	  </div>
    	</div>
    </div>
    </body>  

    0 讨论(0)
提交回复
热议问题