landers.angular
Version:
landers.angular
27 lines (25 loc) • 1.15 kB
JavaScript
;angular.module('Landers.angular')
.directive('toggleClasses', ['Flat', '$timeout', function(Flat, $timeout) {
return {
restrict : 'A',
// require : '?ngModel',
link : function($scope, $ele, $attrs) {
var arr1 = $attrs['toggleClasses'].split(',');
var arr2 = arr1[0].split('|'), callback = arr1[1];
$timeout(function(){
if (callback) {
callback = Flat.get($scope, callback);
};
$ele.data('ToggleClassIndex', 0)
.addClass(arr2[0]).click(function(){
var last_index = $ele.data('ToggleClassIndex');
var index = last_index + 1;
if (index >= arr2.length) index = 0;
for (var i=0; i<arr2.length; i++) $ele.removeClass(arr2[i]);
$ele.data('ToggleClassIndex', index).addClass(arr2[index]);
callback && callback(index, arr2[index]);
});
}, 400);
}
};
}]);