Я хочу использовать $ timeout внутри моей пользовательской директивы AngularJS, но она не работает. Моя последняя реализация выглядит следующим образом:
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);
}
}
}]);
И разметка:
<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>
спасибо, ты мне очень помог http://jsfiddle.net/5j08dn5s/ – snowfinch27
@ snowfinch27 ваш код был сломан в нескольких местах http://jsfiddle.net/dtjfojt1/ – sielakos
спасибо, ты мне очень помог, теперь элемент исчезает астра задержка, но только один раз, следующая задача для меня - заставить работать задержка с каждым щелчком, я буду очень благодарен, если вы поможете мне, вот рабочая скрипка: [link] (http://jsfiddle.net/ 5 j08dn5s /) – snowfinch27