Как реализовать слайдер диапазона jQuery в AngularJS

Я пытаюсь использовать anuglar-slider в моем существующем приложении AngularJS.

Я следил за комментариями автора здесь

Я загрузил ниже файлы (в теге Head) из автора github и добавил в свой index.html

HTML-код:

<head>  

<link rel="stylesheet" href="css/angular-slider.css">
<script src="js/vendor/angular-slider.js"></script>

</head>
<body>

  <slider floor="10" ceiling="60" ng-model-low="lowValue" ng-model-high="highValue"></slider>

</body>   

App.js (Angular код). Я добавил вторую строку в соответствии с инструкциями автора, я подозреваю, что сделал что-то не так.

var app = angular.module('myApp', [])
angular.module('uiSlider', []);

app.constant('Config',
{
    baseURL : "http://blah",
    httpTimeout : 36000
});
app.config(function($logProvider) {
    $logProvider.debugEnabled(true);
});
 //and some other app specific code follows

Я не вижу рендеринга слайдера в браузере. Однако более старые функции Angular в приложении все еще работают, и в консоли браузера нет ошибок.

Если вы не можете найти проблему выше, не стесняйтесь предлагать любой другой способ реализовать слайдер диапазона в приложении AngularJS.

Я новичок в AngularJS

Сообщите мне, если вы хотите, чтобы я опубликовал здесь код файла библиотеки авторов.

Ответ 1

Хорошо, я нашел некоторые проблемы при подготовке этого, но теперь он работает:

Основанные проблемы:

  • Требуется версия с угловым \1.1.4 or higher
  • вам нужен файл slider-template.html
  • и как @Pascal сказал, что вам нужно включить uiSlider:

    var app = angular.module('myApp', ['uiSlider'])
    
  • Я подготовил для вас рабочую демонстрацию ниже. Я надеюсь, что это поможет вам.

DEMO

Ответ 2

Недавно я использовал RANGE SLIDER в angularJS. Если вы хотите использовать причудливую слайдерную или слайдерную директиву. Вы получите его снизу.

директива слайдера AngularJS без внешних зависимостей Существует много типов слайдеров, таких как

  • Простой слайдер
  • Ползунок диапазона
  • Ползунок с пользовательским стилем
  • Ползунок с динамическим цветом выборки
  • Ползунок с пользовательским полом/потолком/шагом
  • Слайдер с тиками

Он очень прост в использовании, удобен для мобильных устройств и настраивается.

Я использовал простой слайдер, используя jQuery. Код приведен ниже.

<form>
    <div class="choose_industry">
        <div class="form-group">
            <label class="control-label col-xs-12 col-sm-4 col-md-2 col-lg-2 " for="name">What Industry?</label>
            <div class="col-xs-12 col-sm-8 col-md-10 col-lg-10">
                <div class="radio  col-xs-6 col-sm-6 col-md-6 col-lg-6">
                    <input type="radio" name="radio1" id="radio1" value="cdl" ng-model="leg_ser.industry">
                    <label for="radio1">
                        Commercial Trucking Transportation
                    </label>
                </div>
                <div class="radio  col-xs-6 col-sm-6 col-md-6 col-lg-6">
                    <input type="radio" name="radio1" id="radio2" value="non_cdl" ng-model="leg_ser.industry">
                    <label for="radio2">
                        Other Industries
                    </label>
                </div>
            </div>
        </div>
    </div>

    <div class="employee_counting">
        <div class="form-group col-xs-12 col-sm-4 col-md-4 col-lg-4">
            <label class="control-label" for="name">Number of Employees?</label>
            <div class="input-group">
                <span class="input-group-addon"><i class="fa fa-user"></i></span>
                <input type="number" class="form-control" placeholder="Employees" name="Number of Employees" ng-model="leg_ser.num_of_emp">
                <!-- <span>Total Number of Employees</span> -->
            </div>

            <div class="range_slider">
                <span class="pull-left">0</span>
                <span class="pull-right">25k</span>
                <div id="slidecontainer">
                    <input type="range" min="0" max="25000" value="0" class="slider" id="myRange" ng-model="leg_ser.num_of_emp">
                </div>
            </div>
        </div>
        <div class="form-group col-xs-12 col-sm-4 col-md-4 col-lg-4">
            <label class="control-label" for="name">Enrollment Percentage (%)?</label>
            <div class="input-group">
                <span class="input-group-addon"><i class="fa fa-percent"></i></span>
                <input type="number" class="form-control" placeholder="Percentage" name="Enrollment Percentage" ng-model="leg_ser.enroll_per">
                <!-- <span>Estimated Percentage that will enroll</span> -->
            </div>

            <div class="range_slider">
                <span class="pull-left">0%</span>
                <span class="pull-right">100%</span>
                <div id="slidecontainer">
                    <input type="range" min="1" max="100" value="1" class="slider" id="myRange" ng-model="leg_ser.enroll_per">
                </div>
            </div>
        </div>
        <div class="form-group col-xs-12 col-sm-4 col-md-4 col-lg-4">
            <label class="control-label" for="name">Annual Cost per Employees?</label>
            <div class="input-group">
                <span class="input-group-addon"><i class="fa fa-dollar"></i></span>
                <input type="number" class="form-control" placeholder="Cost" name="Annual Cost per Employees" ng-model="leg_ser.annual_cost">
                <!-- <span>Avarage Salary and benifits per Employee</span> -->
            </div>

            <div class="range_slider">
                <span class="pull-left">$0</span>
                <span class="pull-right">$300k</span>
                <div id="slidecontainer">
                    <input type="range" min="0" max="300000" value="0" class="slider" id="myRange" ng-model="leg_ser.annual_cost">
                </div>
            </div>
        </div>
    </div>
</form>

Добавьте следующий код в тег script

<!-- RANGE SLIDER JS START -->
<script>
var slider = document.getElementById("myRange");
var output = document.getElementById("demo");
output.innerHTML = slider.value;

slider.oninput = function() {
  output.innerHTML = this.value;
}
</script>
<!-- RANGE SLIDER JS OVER -->

Выше script работает хорошо для меня, также должно работать для вас.