【发布时间】:2018-06-13 23:17:28
【问题描述】:
在尝试使用我的代码库实现 TypeScript 时,我遇到了这个问题。似乎我过去按顺序加载 jQuery 和 AngularJS 的方式,AngularJS 会利用 jQuery 的存在并使用它的功能扩展自己。但是,当在模块中本地导入时,AngularJS 会被单独加载,并且似乎无法使用 jQuery 扩展自身。因此,当我做这样的事情时:
import * as $ from 'jquery';
import * as angular from 'angular';
export default ['$window', function($window) {
let position = angular.element($window).scrollTop();
}];
我收到这个 TypeScript 错误:
类型“JQLite”上不存在属性“scrollTop”。
我如何加载 AngularJS,使其知道可以使用 jQuery 并使用它进行扩展?
【问题讨论】:
-
使用 webpack 或?angular 之类的任何捆绑程序从窗口对象中获取 jQuery。因此它不会附加到窗口对象。
-
@zabusa 确实如此。但是有没有办法解决这个问题,可能取决于你如何设置 webpack 配置?
-
@LucasvanHeerikhuizen 是的。如果您使用的是 webpack,则有办法或任何其他捆绑程序
-
@ParthRaval 在您的链接主题中建议的解决方案似乎在特定情况下有效,将其减少为 jQuery - 或者在这种情况下是 JQLite - 问题。必须将所有内容包装在 (
angular.element($window)).scrollTop();不过看起来确实很可怕!
标签: javascript jquery angularjs typescript