2017-02-04 2 views
0

Я пробовал много разных вещей, чтобы попытаться заставить это работать. Я прочитал:Угловой ng-click not firing

ng-click not firing in AngularJS while onclick does

AngularJS : ng-click not working

и многое другое

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() 
    }); 
    }; 
}); 

По какой-то причине div не исчезает вообще.

+1

Только намек, вы должны избегать DOM манипуляции при использовании AngularJS смотрите: http://stackoverflow.com/questions/14994391/thinking-in-angularjs-if-i-have-a-jquery-background , jQuery не требуется/рекомендуем при использовании AngularJS. – lin

ответ

5

Вы указали свое имя приложения в controller. Проверь это.

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

Если я делаю это на jsfiddle, он не хочет работать, хотя он работает на этой странице. https://jsfiddle.net/DrevanTonder/sguy6agL/ – DrevanTonder

0

Кажется мне что-то не так с именем контроллера. Попробуйте это:

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

0

вы можете использовать ng-show или ng-hide в этом случае

<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; 
    }; 
}); 

для угловой анимации - см LINK

0

указан правильный "нг-приложение" и " ng-controller "

HTML т. Е.

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