Free cookie consent management tool by TermsFeed Policy Generator

source: branches/2213_irace/HeuristicLab.Services.WebApp/3.3/WebApp/libs/angularjs/angular-knob/angular-knob.js @ 17328

Last change on this file since 17328 was 12428, checked in by ascheibe, 10 years ago

#2394 added web app and status page to trunk

File size: 1.5 KB
Line 
1angular.module('ui.knob', []).directive('knob', ['$timeout', function ($timeout) {
2    'use strict';
3
4    return {
5        restrict: 'EA',
6        replace: true,
7        template: '<input value="{{ knobData }}"/>',
8        scope: {
9            knobData: '=',
10            knobOptions: '&'
11        },
12        link: function ($scope, $element) {
13            var knobInit = $scope.knobOptions() || {};
14
15            knobInit.release = function (newValue) {
16                $timeout(function () {
17                    $scope.knobData = newValue;
18                    $scope.$apply();
19                });
20            };
21
22            $scope.IsAnimating = false;
23            $scope.$watch('knobData', function (newValue, oldValue) {
24                if (newValue != oldValue && $scope.IsAnimating == false) {
25                    $scope.IsAnimating = true;
26                    $($element).val(oldValue);
27                    $($element).animate({
28                        value: parseInt(newValue)
29                    }, {
30                        duration: 500,
31                        easing: 'swing',
32                        progress: function () {
33                            $(this).val(Math.round(this.value)).change();
34                        },
35                        complete: function () {
36                            $scope.IsAnimating = false;
37                        }
38                    });
39                }
40            });
41
42            $($element).val($scope.knobData).knob(knobInit);
43        }
44    };
45}]);
Note: See TracBrowser for help on using the repository browser.