Hey everyone,
I’ve been mucking around with directives for that last few days and one of my requirements has been a simple timepicker. Nothing too fancy, but if anyone would like to use it – feel free.
See the following fiddle for the demo: http://jsfiddle.net/LFB3F/2/
The directive is initialised with both the hour and minute defaults being set like this:
Note that hours and minutes should be set in the controller that wraps around the Timepicker:
app.controller("MyCtrl", function MyCtrl($scope) { $scope.hours = 11; $scope.minutes = 45; });
The hours and minutes will then be updated whenever the user changes the value. If you need any other hooks it’s fairly easy to modify and there are a heap of comments.
You may also want to put the HTML in an external template. Just make the following changes to the directive (note templateURL):
app.directive("ngTimeSelector", function () { return { restrict: 'EA', templateUrl: '/Directives/TimeSelector', scope: { hours: "=", minutes: "=" }, replace: true, link: function (scope, elem, attr) { ... ...
The JSFiddle is probably the easiest way to see how it all works. You can simply copy it from there to your app. Alternatively, I’ve dumped the code below:
Uncondensed HTML (for those who prefer to use a template)
{{displayHours()}}{{displayMinutes()}}= 12" class="display"> PM<div ng-if="hours AM