我在angular2应用程序中使用lodash。通过使用declare var _: any;
我正在执行lodash操作,例如_.findIndex(...)
。现在我面临一个问题。有时在加载页面时我会收到如下错误
EXCEPTION: ReferenceError: _ is not defined
如何避免这种情况?
正如我的假设,lodash代码在declare var _: any;
答案 0 :(得分:2)
实际上,它取决于在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' }
}
});
答案 1 :(得分:0)