包装jquery-ui滑块会导致“undefined is not a function”错误

时间:2014-06-26 23:20:55

标签: javascript angularjs jquery-ui angularjs-directive

以下是jquery-ui滑块的包装器的开头。

app.directive('sliderWidget', ['$timeout', function ($timeout) {
    return {
        scope: {
            min: "@min",
            max: "@max",
            step: "@step"
        },
        restrict: 'A',
        require: 'ngModel',
        link: function (scope, elem, attrs, ngModel) {
            elem.slider({
                min: scope.min,
                max: scope.max,
                step: scope.step,
                slide: function (event, ui) {
                    //ngModel.$setViewValue(ui.value);
                }
            });
            //ngModel.$render = function () {
            //  elem.slider('value', ngModel.$viewValue);
            //  $timeout(function () { scope.$apply() });
            //};
        }
    };
}]);

<div slider-widget min=0 max=99 step=1 ng-model="someValue"></div>

然而,尽管如此,在所有主要部分被注释掉的情况下,当滑动事件发生时我得到错误:

Uncaught TypeError: undefined is not a function --> jquery-ui.js:11881

我正在使用:

jQuery v2.1.1

jQuery UI - v1.10.4

AngularJS v1.2.16

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

好的,所以当在具有隔离范围的指令中访问单向绑定范围变量时,这些值表示为字符串,即使它们在属性中用数字常量定义。我只需要使用parseFloat()来检索数值。