<!DOCTYPE html>
<html ng-app="angularjs-starter">

  <head lang="en">
    <meta charset="utf-8">
    <title>AngularJS jQuery UI Slider directive</title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min.js"></script>
    <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jqueryui-touch-punch/0.2.2/jquery.ui.touch-punch.min.js"></script>
    <script src="http://code.angularjs.org/1.0.5/angular.js"></script>
    <link type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/themes/redmond/jquery-ui.css" rel="stylesheet" />
    
    <link rel="stylesheet" href="style.css">
    <script>
      document.write('<base href="' + document.location + '" />');
    </script>
    <script src="app.js"></script>
  </head>
  
  <body ng-controller="MainCtrl">
  <h1>AngularJS Slider directive Data Binding</h1>
<h3 class="nomargin"><span ng-bind="sliderRanges.kms+' kms'"></span></h3>  
<div id="km-slider" class="slider" slider trigger="filterCars" config="milesSliderConfig" model="sliderRanges.kms"></div>
  </body>

</html>
// Inspired by climboid (https://github.com/climboid/angular-slider)

var app = angular.module('angularjs-starter', []);

app.controller('MainCtrl', function($scope) {
    $scope.sliderRanges = {};

        $scope.milesSliderConfig = {

            min: 1000,
            max: 100000,
            step: 10
        }

        $scope.sliderRanges.kms = 100000; //This should be max value
  
});


app.directive("slider", function() {
    return {
        restrict: 'A',
        scope: {
            config: "=config",
            model: "=model",
            trigger: '=trigger'
        },
        link: function(scope, elem, attrs) {

   
            $(elem).slider({
                range: "min",
                min: scope.config.min,
                max: scope.config.max,
                value: scope.model,
                step: scope.config.step,
                slide: function(event, ui) {
                    scope.$apply(function() {
                        scope.model = ui.value;
                    });
                    console.log(scope.model);
                    scope.$apply(scope.trigger);
                }
            });
        }
    }
});
/* CSS goes here */