4

在我的项目中,我同时使用 jQuery 和 Angular。我已经通过 bower 安装了这些,并且正在使用 browserify 来加载文件。这似乎工作正常,除了 angular 似乎使用 jqLit​​e。当我试图跑步时

angular.element(".workItem").hide();

我收到一条错误消息,说 jqLit​​e 不支持查询选择器。我怎样才能解决这个问题并使用 jQuery?

我想在 $ 上使用 angular.element 进行测试。

谢谢!

4

3 回答 3

4

文档

要使用 jQuery,只需确保它在 angular.js 文件之前加载。

所以在你的index.html文件中,你会想要这样的东西:

<html>
  <head>
    <script src='jquery.js'></script>
    <script src='angular.js'></script>
  </head>
</html>

这样做之后,angular.element应该可以代替$

如果 jQuery 可用,则 angular.element 是 jQuery 函数的别名。如果 jQuery 不可用,则 angular.element 委托给 Angular 的内置 jQuery 子集,称为“jQuery lite”或“jqLit​​e”。

IE。angular.element('.foo')将与 相同$('.foo')

于 2015-08-23T00:49:07.980 回答
1

要使其与 browserify 一起使用,您必须要求它:将 jquery 依赖项添加到 bower 并在您的主文件中执行:

require('jquery');
global.jQuery = require('jquery');
global.$ = jQuery;

在此之前,browserify 看不到它,因为该引用仅在 bower 中。所以使用 browserify-shim 来制作胶水:

  • 安装 browserify-shim
  • 在您的 package.json 中,添加:
 "browserify": {
   "transform": [
     "browserify-shim"
   ]
 },
  "browser": {
    "jquery": "./bower_components/jquery/dist/jquery.js"

有关完整信息,请参阅https://github.com/thlorenz/browserify-shim

于 2015-10-02T15:12:39.587 回答
0

如果您使用的是 bower,请转到您的文件bower.json并将jquery放在任何角度库之前的依赖项中。

{
  "name": "myadmin",
  "version": "1.0.0",
  "dependencies": {
    "jquery": "~2.1.4",
    "angular-animate": "~1.6.9",
    "angular-cookies": "~1.6.9",
    "angular-touch": "~1.6.9",
    "angular-sanitize": "^1.6.9",
    "angular-messages": "~1.6.9",
    "angular-aria": "~1.6.9",
    "angular-resource": "~1.6.9",
    "angular-ui-router": "~0.4.0",
    "angular-bootstrap": "~2.4.0",
    "angular-toastr": "^2.1.1",
    "animate.css": "~3.4.0",
    "angular": "~1.7.0",
    ...
于 2018-07-10T14:39:22.357 回答