2015-09-28 112 views
8

我想切換單擊按鈕上的div文本。我嘗試使用一個範圍變量並根據變量創建類名。我在哪裏做的錯誤hereAngularjs切換div的可見性

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


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

.vis{ 
     display:none; 
} 

回答

20

您可以除非你需要特定的納克級的切換在這種情況下,你可以做簡化這個有很多像這樣

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

Fiddle example

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

Fiddle example

(只需確保你使用的角度對這個更新的版本)

+0

在jsfiddle嘗試..這沒有爲我工作。 – Kurkula

+0

@Chandana你指的是哪一部分?因爲你使用的小提琴沒有正確連接。 – ajmajmajma

+0

我嘗試像這樣http://jsfiddle.net/nw5ndzrt/346/ – Kurkula

7

我已經改變了你的指令..

HTML

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

控制器

function ctrl($scope) {  

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

在這裏看到完整的代碼 http://jsfiddle.net/nw5ndzrt/345/

+0

好點。謝謝。 – Kurkula

+0

歡迎@Chandana .. –

2

另一種方法... 使用NG-開關
您可以通過多個div沒有CSS麻煩切換...

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"> 
 
\t <button ng-click="showDiv = !showDiv">test </button> 
 
\t <div ng-switch="showDiv" > 
 
\t <div ng-switch-default> 
 
\t \t hello you 
 
\t </div> 
 
\t <div ng-switch-when=true> 
 
\t \t hello me 
 
\t </div> 
 
\t </div> 
 
</div> 
 
</body>