Skip to content

Instantly share code, notes, and snippets.

@JensRantil
Last active December 16, 2015 17:19
Show Gist options
  • Star 6 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save JensRantil/5470122 to your computer and use it in GitHub Desktop.
Save JensRantil/5470122 to your computer and use it in GitHub Desktop.
Improvement of http://stackoverflow.com/a/14774995/260805 that handles generated title attribute on timeago tags.
<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>
angular.module('MyApplication', ['timeAgo'])
.controller('myController', function($scope) {
$scope.myTime = "2008-07-17T09:24:17Z";
});
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);
});
}
};
});
@5cell
Copy link

5cell commented Aug 25, 2013

Very useful directive. Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment