2016-07-05 4 views
2

Warum funktioniert das nicht wirklich?ng-click betrifft nicht die Kinder der Eltern

Ich habe einen Feldtest.

Aber wenn ich auf die <p> von child1 klicke, hat dies keine Auswirkungen auf die child2 <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

Es ist zu verwenden, da 'ngIf' einen separaten Rahmen Kind schafft. Und wenn Sie Variablen Inline-Variablen deklarieren - Sie erstellen sie auf den Bereich dieses HTML-Elements. Alles, was sich in der "ngIf" befindet, befindet sich in diesem Bereich – tymeJV

Antwort

1

Sie müssen ein Winkelmodul in JS definieren und es mit der ng-app-Direktive zuweisen. Wie folgt aus:

<!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

Jede Richtlinie schafft einen eigenen Anwendungsbereich.

Also, wenn Sie die Variable/Objekt in übergeordneten Bereich zugreifen möchten, müssen Sie $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> 
Verwandte Themen