public
Last active

Improvement of http://stackoverflow.com/a/14774995/260805 that handles generated title attribute on timeago tags.

  • Download Gist
example.html
HTML
1 2 3 4 5 6 7 8 9 10 11 12
<html ng-app="MyApplication">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.6/angular.min.js"></script>
<script src="timeago-angular.js" type="text/javascript"></script>
<script src="my-app.js" type="text/javascript"></script>
</head>
<body>
<div ng-controller="myController">
<span class="time-ago" title="{{ myTime }}"></span>
</div>
</body>
</html>
my-app.js
JavaScript
1 2 3 4
angular.module('MyApplication', ['timeAgo'])
.controller('myController', function($scope) {
$scope.myTime = "2008-07-17T09:24:17Z";
});
timeago-angular.js
JavaScript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
angular.module('timeAgo', [])
.directive("timeAgo", function($q) {
return {
restrict: "C",
scope: {
title: '@'
},
link: function(scope, element, attrs) {
// Using deferred to assert we only initialize timeago() once per
// directive.
var parsedDate = $q.defer();
parsedDate.promise.then(function() {
jQuery(element).timeago();
});
attrs.$observe('title', function(newValue) {
parsedDate.resolve(newValue);
});
}
};
});

Very useful directive. Thank you!

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.