Countdown feito para Angular JS
by Ivan Ferrer
HTML
<div ng-app="iCountdown">
<i-countdown set-date="2016-10-24 15:00:00" format-view="%d dias %h hs %i min %s sg" expire-message="redirecionando..."></i-countdown>
</div>
JavaScript
angular.module('iCountdown', [])
.directive("iCountdown", function () {
return {
restrict: "EAC",
scope: {
setDate: "@",
expireMessage: "@",
formatView: "@"
},
replace: true,
template: "<div><div></div></div>",
link: function (scope, element) {
scope.insertDate = function() {
scope.setMessageExpired(scope.expireMessage);
scope.setDateFinal(scope.setDate);
scope.start();
};
scope.$watch('setDate', function() {
scope.insertDate();
}, true);
var end = new Date();
var _second = 1000;
var _minute = _second * 60;
var _hour = _minute * 60;
var _day = _hour * 24;
var params = {
second:_second,
minute:_minute,
hour: _hour,
day: _day,
interval: null,
messageFinal: 'expired!',
format:'Y-m-d H:i:s',
dateEnd: null
};
scope.setMessageExpired = function(message) {
params.messageFinal = message;
};
scope.setId = function(id) {
params.id = id;
scope.viewElement.setAttribute("id", id);
};
scope.setDateFinal = function(dateVal) {
params.dateEnd = dateVal;
};
var createDateFinal = function(strDate) {
var reggie = /(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/;
var dateArray = reggie.exec(strDate);
return new Date(
(+dateArray[1]),
...