如何在AngularJS中实现jQuery范围滑块

时间:2013-06-14 16:30:30

标签: javascript angularjs slider angularjs-directive

我正在尝试在现有的AngularJS应用中使用anuglar-slider

我遵循了作者的评论here

我从作者的github下载了以下文件(在Head标签中)并添加到我的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 (角色代码)。我根据作者的指示添加了第二行,我怀疑我确实做错了什么

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的新手

如果您希望我在此处发布作者的库文件代码,请告诉我。

2 个答案:

答案 0 :(得分:9)

好的我在准备这个时遇到了一些麻烦,但现在它正在运作:

成功的麻烦:

  • 需要angularjs版本1.1.4 or higher
  • 您需要slider-template.html
  • 和@Pascal一样,你需要加入uiSlider

    var app = angular.module('myApp', ['uiSlider'])
    
  • 我为你准备了一个下面的工作演示。我希望它能帮到你

<强> DEMO

答案 1 :(得分:0)

最近我在angularJS中使用了RANGE SLIDER。 如果你想使用花式滑块或滑块指令。你将从下面得到它。

AngularJS slider directive with no external dependencies 有许多类型的滑块,例如

  • 简单滑块
  • 范围滑块
  • 具有自定义样式的滑块
  • 具有动态选择条颜色的滑块
  • 带定制地板的滑块/ ceil / step
  • 带刻度的滑块

它非常易于使用,适合移动设备和可自定义。

我使用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>

在脚本标记

中添加以下代码
<!-- 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 -->

以上脚本对我有用,也适合你。