根据angular DOCS (如果jQuery可用),angular.element是jQuery函数的别名。如果jQuery不可用,angular.element将委托AngularJS内置的jQuery子集,称为"jQuery lite“或jqLite。
我试图通过在jQuery之后加载angular来强制angular使用jQuery而不是JQLite。然而,angular.element仍然是一个JQLite引用。下面是代码。
<!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错误,
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。我哪里错了?
发布于 2020-07-22 22:57:15
只需在html元素上使用ngJq并传入jQuery的窗口变量即可。这将导致angular覆盖jQlite的使用
<!doctype html>
<html ng-app ng-jq="jQuery">
...
...
</html>https://stackoverflow.com/questions/63034234
复制相似问题