3

我偶尔会发现一些插件会尝试检测 JQuery 是否存在,或者可能有 1-2 行代码使用$. 我想知道是否有可能以某种方式使 Angular 的 JQLite 在 Angular 应用程序之外可用?我第一次尝试简单地查看 JQLite 是否可用,但没有成功。基本上,我希望变量$jQuery在任何地方(或至少在我的 ng-app 区域内)可用,以查看它是否包含足够的功能来让这些 jquery 插件/代码工作。

这是源https://github.com/angular/angular.js/blob/master/src/jqLit​​e.js

4

1 回答 1

7

实际上,您可以,但几乎可以肯定它无济于事。

如果你想“导出”它,你只需要在加载 Angular JavaScript 之后添加它:

window.jQuery = window.$ = angular.element;

现在调用$()orjQuery()将运行jqLite这就是它很可能不起作用的原因:jqLite不支持选择器,这意味着你不能这样做

angular.element('.foo').html();

您只会收到一条错误消息,指出Selectors not implemented

这是一个 jsFiddle,显示它在直接用于元素时工作,但选择器失败。


编辑

根据 Yashua 在下面的建议,这里是使用他的技巧来启用选择器的更新。如果 jqLit​​e 足够好,这是一个很好的技巧/hack。


就个人而言,我不同意您应该只包含 jQuery。它是另一个值得依赖的大型库,如果您只执行几个单行代码,您应该能够使用适当的指令直接将它们集成到 Angular 中。我会花时间看看您是否可以重写现有代码。

于 2013-08-12T01:53:07.003 回答