Ich möchte $ Timeout in meiner benutzerdefinierten AngularJS-Direktive verwenden, aber es funktioniert nicht. Meine letzte Implementierung sieht wie folgt:
var App = angular.module('App', []);
App.controller('Controller', function($scope){
$scope.test = true;
$scope.toggle = function(){ $scope.test = !$scope.test;};
});
App.directive('showTemporary', ['$timeout', function ($timeout) {
return {
restrict: 'A',
link: function(scope, element, attr){
scope.$watch(attr.showTemporary, function(value){
element.css('display', value ? '' : 'none');
});
$timeout(element.css('display', 'none'), attr.hideDelay);
}
}
}]);
und Markup:
<div ng-app='App'>
<div ng-controller='Controller'>
<button ng-click='toggle()'>toggle</button>
<div show-temporary='test' hide-delay="5000"> visible</div>
</div>
</div>
Danke, du hast mir sehr geholfen http://jsfiddle.net/5j08dn5s/ – snowfinch27
@ snowfinch27 dein Code wurde an einigen Stellen kaputt http://jsfiddle.net/dtjfojt1/ – sielakos
danke, du hast mir sehr geholfen, jetzt Element verschwindet aster Verzögerung, aber nur einmal, nächste Aufgabe für mich ist es, Verzögerung mit jedem Klick arbeiten zu lassen, werde ich sehr dankbar sein, wenn Sie mir helfen, hier ist die Arbeit Geige: [Link] (http://jsfiddle.net/ 5 j08dn5s /) – snowfinch27