2016-07-05 16 views
2

なぜこれは実際には機能しませんか?ng-clickは親の子供には影響しません

私にはフィールドテストがあります。

しかし、私が子の<p>をクリックすると、子2に影響しません<p>

<div ng-init="test=false"> 
    <div id="child1"> 
     <p ng-click="test=!test"> 
      Click! 
     </p> 
    </div> 
    <div id="child2"> 
     <p ng-if="test"> 
      Clicked.. 
     </p> 
    </div> 
</div> 
+5

を使用する必要があります。変数をインライン変数として宣言すると、そのhtml要素のスコープ上に変数を作成します。したがって、 'ngIf'の中の何かがそのスコープにあります – tymeJV

答えて

1

JSで角度モジュールを定義し、ng-appディレクティブを使用して割り当てる必要があります。このように:

<!DOCTYPE html> 
 
<html ng-app="sample"> 
 

 
<head> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
    <script> 
 
    angular.module('sample', []); 
 
    </script> 
 
</head> 
 

 

 
<body> 
 
    <div ng-init="test=false"> 
 
    <div id="child1"> 
 
     <p ng-click="test=!test"> 
 
     Click! 
 
     </p> 
 
    </div> 
 
    <div id="child2"> 
 
     <p ng-if="test"> 
 
     Clicked.. 
 
     </p> 
 
    </div> 
 
    </div> 
 
</body> 
 

 
</html>

1

すべてのディレクティブは、独自のスコープを作成します。

あなたが親スコープ内の変数/オブジェクトにアクセスしたいのであれば、あなたはngIf`は、別の子スコープを作成し `ためです$parent

<div ng-init="test=false"> 
    <div id="child1"> 
     <p ng-click="$parent.test=!$parent.test"> 
      Click! 
     </p> 
    </div> 
    <div id="child2"> 
     <p ng-if="$parent.test"> 
      Clicked.. 
     </p> 
    </div> 
</div> 
関連する問題