2017-02-04 3 views
0

Ich habe viele verschiedene Dinge ausprobiert, um zu versuchen, dass dies funktioniert. Ich habe gelesen:Angular ng-click nicht feuernd

ng-click not firing in AngularJS while onclick does

AngularJS : ng-click not working

und vieles mehr

Html:

<div ng-controller="testApp"> 
    <div id="bla"> 
    <button ng-click="obey('bla')">Close</button> 
    <h4>Bla bla bla</h4> 
    </div> 
</div> 

JS:

var testApp = angular.module('testApp', []); 
testApp.controller('testController', function($scope) { 
    $scope.obey = function test(id) { 
    $("#" + id).fadeOut("slow", function() { 
     this.remove() 
    }); 
    }; 
}); 

Aus irgendeinem Grund verblasst das Div überhaupt nicht.

+1

nur ein Hinweis, sollten Sie DOM-Manipulationen vermeiden, während AngularJS siehe Verwendung: http://stackoverflow.com/questions/14994391/thinking-in-angularjs-if-i-have-a-jquery-background . jQuery wird nicht benötigt/empfohlen, wenn AngularJS verwendet wird. – lin

Antwort

5

Sie haben Ihren App-Namen in controller angegeben. Überprüfen Sie dies.

var testApp = angular.module('testApp', []); 
 
testApp.controller('testController', function($scope) { 
 
    $scope.obey = function test(id) { 
 
    $scope.hide= !$scope.hide; 
 
    }; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="testApp" ng-controller="testController"> 
 
    <div id="bla"> 
 
    <button ng-click="obey('bla')">Close</button> 
 
    <h4 ng-hide="hide">Bla bla bla</h4> 
 
    </div> 
 
</div>

+0

Wenn ich das auf jsfiddle mache, will es nicht funktionieren, obwohl es auf dieser Seite funktioniert. https://jsfiddle.net/DrevanTonder/sguy6agL/ – DrevanTonder

0

Scheint mir ist es etwas falsch mit dem Namen des Controllers. Versuchen Sie folgendes:

<div ng-app="testApp" ng-controller="testController"> 
    <div id="bla"> 
    <button ng-click="obey('bla')">Close</button> 
    <h4>Bla bla bla</h4> 
    </div> 

0

Sie ng-show oder ng-hide in diesem Fall

<div ng-controller="testApp"> 
    <div id="bla"> 
    <button ng-click="obey()">Close</button> 
    <h4 ng-show="viewDiv">Bla bla bla</h4> 
    </div> 
</div> 

var testApp = angular.module('testApp', []); 
testApp.controller('testController', function($scope) { 
$scope.viewDiv = true; 
    $scope.obey = function test(id) { 
    $scope.viewDiv = !$scope.viewDiv; 
    }; 
}); 

für Winkel Animation verwenden - LINK

0

angegeben proper "ng-App" beziehen und " ng-controller "name

HTML dh.

<body ng-app="testApp"> 
    <div ng-controller="testController"> 
     <div id="bla"> 
     <button ng-click="obey('bla')">Close</button> 
     <h4>Bla bla bla</h4> 
     </div> 
    </div> 
<body>