将jQuery UI滑块小部件转换为AngularJS指令

Rod*_*ney 2 jquery jquery-ui jquery-ui-slider angularjs angularjs-directive

我正在尝试构建一个Angular指令,用于创建键盘可访问的滑块小部件.我在Github上找到了几个Angular滑块,但没有一个是键盘可访问的.所以,我正在尝试将jQuery UI滑块转换为Angular指令.

这是我如何在没有Angular的情况下构建小部件.

HTML:

<div id="slider"></slider>
<input type="text" id="amount"/>
Run Code Online (Sandbox Code Playgroud)

使用Javascript:

$("#slider").slider({
  min: 1,
  max: 10,
  slide: function(event, ui) {
    $("#amount").val(ui.value);
  }
});
Run Code Online (Sandbox Code Playgroud)

这就是我希望Angular指令工作的方式:

<slider min="1" max="10" ng-model="sliderValue"/>
<input type="text" ng-model="sliderValue"/>
Run Code Online (Sandbox Code Playgroud)

作为示例,这里有一个jsFiddle,显示了某人如何将jQuery UI日期窗口小部件转换为Angular指令.

http://jsfiddle.net/xB6c2/121/

我想为滑块小部件做类似的事情.谢谢!

Rod*_*ney 6

这是一个有效的解决方案.感谢Duc Hong - 他的回答有助于我解决这个问题.如果有更好的方法,请告诉我.

app.directive('slider', function() {
    return {
        restrict: 'AE',
        link: function(scope, element, attrs) {
            element.slider({
                value: scope[attrs.ngModel],
                min: parseInt(attrs.min),
                max: parseInt(attrs.max),
                step: parseFloat(attrs.step),
                slide: function(event, ui) {
                    scope.$apply(function() {
                        scope[attrs.ngModel] = ui.value;
                    });
                }
            });
        }
    };
});
Run Code Online (Sandbox Code Playgroud)