如何修复 AngularJS 指令中的“jQuery 可拖动不是函数”

Posted

技术标签:

【中文标题】如何修复 AngularJS 指令中的“jQuery 可拖动不是函数”【英文标题】:How do I fix 'jQuery draggable is not a function' in AngularJS directive 【发布时间】:2016-04-22 20:10:33 【问题描述】:

我在 AngularJS 中创建了一个自定义指令,但它会产生错误。

这是我的代码:

myApp.directive("dragMe", function() 
    return 
        restrict: 'E',
        scope: ,
        templateUrl: 'dragMe.html',
        link: function(scope, element, attrs) 
            setTimeout(function()
                $(".dummy").draggable()
            , 1000);
        
    ;
)

在添加此指令时,我收到一个错误:

可拖动不是函数

我在主 HTML 文件中添加了 jQuery 文件,并在 angular 文件之前添加了它。有什么问题?

【问题讨论】:

你的项目中包含 jqueryUI 了吗? draggable() 是 jQueryUI 的方法,不是标准的 jQuery。您需要包含这两个库。 你是对的......我太愚蠢了......非常感谢......很抱歉提出这样的问题 @Sumeetkumar 你的问题没有错。这绝对不是一个愚蠢的人 【参考方案1】:

这是由于您没有同时包含 jQuery UI 库造成的。 Draggable 不是核心 jQuery 的一部分,它是 UI 扩展的一部分。

在 jQuery 参考下面添加 jQuery UI,你会没事的。

【讨论】:

以上是关于如何修复 AngularJS 指令中的“jQuery 可拖动不是函数”的主要内容,如果未能解决你的问题,请参考以下文章

angularjs如何在视图渲染结束之后,或者render之后执行指令中的link方法呢?

如何从 AngularJS 中的自定义指令 * 使用自己的范围 * 访问父范围?

如何在 angularjs 指令中要求控制器

如何创建复制现有指令的可重用 AngularJs 指令

AngularJS:如何将参数/函数传递给指令?

如何自动大写AngularJS输入字段中的第一个字符?