angular2 中的 Lodash,声明 var_:any 不工作
Lodash in angular2, declare var_:any not working
我在我的 angular2 应用程序中使用 lodash。通过使用 declare var _: any;
我正在做 lodash 操作,例如 _.findIndex(...)
。现在我面临一个问题。有时在加载页面时出现如下错误
EXCEPTION: ReferenceError: _ is not defined
如何避免这种情况?
根据我的假设,lodash 代码在 declare var _: any;
之前执行
如果您使用的是 TypeScript,则需要在您的文件中导入库:
import _ from 'lodash';
看一个模拟题:
事实上,这取决于将 lodash 库配置/包含到您的 HTML 页面的方式:
将 lodash.js 文件包含到 script
元素中 。这样,lodash 就可以作为全局变量 (_
) 进入应用程序。在这种情况下,您需要利用 TypeScript 的环境声明来定义它:
declare var _: any;
将 lodash.js 文件配置到 SystemJS 配置中 。通过这种方式,lodash 库将检测到它将在模块加载器中使用,因此它将自己注册为模块并将 return 和 _
变量添加到导出中。在这种情况下,您需要使用导入来获取它。由于_
变量是直接设置到exports中的,需要这样导入:
import _ from 'lodash';
对应的配置为:
System.config({
(...)
map: {
lodash: 'node_modules/lodash/lodash.js'
},
meta: {
lodash: { format: 'amd' }
}
});
我在我的 angular2 应用程序中使用 lodash。通过使用 declare var _: any;
我正在做 lodash 操作,例如 _.findIndex(...)
。现在我面临一个问题。有时在加载页面时出现如下错误
EXCEPTION: ReferenceError: _ is not defined
如何避免这种情况?
根据我的假设,lodash 代码在 declare var _: any;
如果您使用的是 TypeScript,则需要在您的文件中导入库:
import _ from 'lodash';
看一个模拟题:
事实上,这取决于将 lodash 库配置/包含到您的 HTML 页面的方式:
将 lodash.js 文件包含到
script
元素中 。这样,lodash 就可以作为全局变量 (_
) 进入应用程序。在这种情况下,您需要利用 TypeScript 的环境声明来定义它:declare var _: any;
将 lodash.js 文件配置到 SystemJS 配置中 。通过这种方式,lodash 库将检测到它将在模块加载器中使用,因此它将自己注册为模块并将 return 和
_
变量添加到导出中。在这种情况下,您需要使用导入来获取它。由于_
变量是直接设置到exports中的,需要这样导入:import _ from 'lodash';
对应的配置为:
System.config({ (...) map: { lodash: 'node_modules/lodash/lodash.js' }, meta: { lodash: { format: 'amd' } } });