我在我的 angular2 应用程序中使用 lodash。通过使用 declare var _: any;
我正在执行 lodash 操作,例如 _.findIndex(...)
。现在我面临一个问题。有时在加载页面时我会收到如下错误
EXCEPTION: ReferenceError: _ is not defined
如何避免这种情况?
根据我的假设,lodash 代码在 declare var _: any;
最佳答案
事实上,这取决于在 HTML 页面中配置/包含 lodash 库的方式:
将 lodash.js 文件包含到
script
元素中。这样,lodash 就可以作为应用程序中的全局变量 (_
) 使用。在这种情况下,您需要利用 TypeScript 的环境声明来定义它:declare var _: any;
将 lodash.js 文件配置到 SystemJS 配置中。通过这种方式,lodash 库将检测到它将在模块加载器中使用,因此它将自身注册为模块并将
_
变量返回到导出中。在这种情况下,您需要使用导入来获取它。由于_
变量是直接设置到导出中的,因此您需要这样导入它:import _ from 'lodash';
相应的配置为:
System.config({ (...) map: { lodash: 'node_modules/lodash/lodash.js' }, meta: { lodash: { format: 'amd' } } });
关于angular - Angular2 中的 Lodash,声明 var_ :any not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36171727/