首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >强制angular在JQLite上使用jQuery

强制angular在JQLite上使用jQuery
EN

Stack Overflow用户
提问于 2020-07-22 20:29:57
回答 1查看 212关注 0票数 1

根据angular DOCS (如果jQuery可用),angular.element是jQuery函数的别名。如果jQuery不可用,angular.element将委托AngularJS内置的jQuery子集,称为"jQuery lite“或jqLite。

我试图通过在jQuery之后加载angular来强制angular使用jQuery而不是JQLite。然而,angular.element仍然是一个JQLite引用。下面是代码。

代码语言:javascript
复制
    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
    </head>
    
    <body>
        <button onClick="load()">load</button>
        <button onClick="check()">check</button>
    </body>
    <script>
        function load() {
            var scriptElement = document.createElement("script");
            scriptElement.onload = function () {
                console.log("Successfully loaded script 2 using (onload).");
            };
            scriptElement.src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js";
            document.head.appendChild(scriptElement);
        }
        function check() {
            console.log(angular.element == jQuery) // false
        }
    </script>
    
    </html>

此外,在加载所有内容之后,如果我检查angular.element('div'),它会给出jQlite错误,

代码语言:javascript
复制
angular.js:3236 Uncaught Error: [jqLite:nosel] http://errors.angularjs.org/1.6.9/jqLite/nosel
at angular.js:88
at Object.V [as element] (angular.js:3236)
at <anonymous>:1:9

这显然意味着angular指向的是jQlite,而不是jQuery。

我按照文档中的说明将angular指向jQuery。我哪里错了?

EN

回答 1

Stack Overflow用户

发布于 2020-07-22 22:57:15

只需在html元素上使用ngJq并传入jQuery的窗口变量即可。这将导致angular覆盖jQlite的使用

代码语言:javascript
复制
<!doctype html>
<html ng-app ng-jq="jQuery">
...
...
</html>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63034234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档