2015-09-28 48 views
8

ボタンをクリックしてdivテキストを切り替えようとしています。私はスコープ変数を取って、変数に基づいてクラス名をトグルしようとしました。私は間違いhereAngularjs div表示を切り替える

を作っていますどこで、その場合にはあなたが行うことができますが、切り替えるために、特定のngのクラスを必要とする場合を除き
<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

別のアプローチ...あなたは、CSSの手間をかけずに複数のdivを切り替えることができます
使用NG-スイッチ...

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>

関連する問題