我正在尝试使用jQuery实现2个滑块范围输入
https://jqueryui.com/slider/#range
但我无法获得angularjs中范围的数据
我如何实现我的滑块:
在HTML中:
<p>
<label for="thresholdRange">Score threshold:</label>
<input type="text" ng-model="threshold" ng-change="change()" id="thresholdRange" readonly>
</p>
<div id="slider-range" style="margin-left: 1%; width: 50%"></div>
<br/><br/>
在javascript中:
$( function() {
$( "#slider-range" ).slider({
range: true,
min: 0,
max: 100,
values: [ 25, 100 ],
slide: function( event, ui ) {
$( "#thresholdRange" ).val(ui.values[ 0 ]/100 + " - " + ui.values[ 1 ]/100);
console.log("Update minValue");
$('[ng-controller="ValidationCtrl"]').scope().minValue = ui.values[ 0 ];
var minValue = ui.values[ 0 ];
console.log($('[ng-controller="ValidationCtrl"]').scope().minValue);
var appElement = document.querySelector('[ng-app=validationApp]');
var $scope = angular.element(appElement).scope();
$scope.$apply(function() {
$scope.minValue = ui.values[ 0 ];
});
}
});
$( "#thresholdRange" ).val( $( "#slider-range" ).slider( "values", 0 )/100 +
" - " + $( "#slider-range" ).slider( "values", 1 )/100 );
} );
它应该触发一个js函数(使用ng-change定义)来获得2个滑块范围值:
var validationApp = angular.module('validationApp', []);
validationApp.controller('ValidationCtrl', function ($scope, $window) {
$scope.change = function() {
$scope.minValue = $scope.threshold[0]
$scope.maxValue = $scope.threshold[1]
};
});
但是这个功能永远不会被触发。
我如何实现要过滤的表
<tr ng-repeat="alignment in alignmentJson" ng-if="alignment.score >= minValue">
<td><input type="text" id="{{alignment.index}}" name="index" value="{{alignment.index}}" style="display: none;" readonly>{{alignment.index}}</input></td>
<td><input type="text" id="{{alignment.score}}" name="score" value="{{alignment.score}}" style="display: none;" readonly>{{alignment.score}}</input></td>
<tr/>
所以我认为我需要将2个滑块范围的值放到ng模型中以使用它来过滤表格
任何人都知道为什么不触发ng-change功能?或任何建议,以获得角度控制器的输入值。谢谢!
使用以下实现解决:https://jsfiddle.net/ValentinH/954eve2L/ 感谢Shashank Vivek
答案 0 :(得分:1)
使用以下使用rzSlider的实现解决: https://jsfiddle.net/ValentinH/954eve2L/
<h2>Range slider</h2>
Min Value:
<input type="number" ng-model="minRangeSlider.minValue" />
<br/>Max Value:
<input type="number" ng-model="minRangeSlider.maxValue" />
<br/>
<rzslider rz-slider-model="minRangeSlider.minValue" rz-slider-high="minRangeSlider.maxValue" rz-slider-options="minRangeSlider.options"></rzslider>