Lodash in angular2,声明var_:任何不起作用

时间:2016-03-23 07:05:06

标签: angular lodash

我在angular2应用程序中使用lodash。通过使用declare var _: any;我正在执行lodash操作,例如_.findIndex(...)。现在我面临一个问题。有时在加载页面时我会收到如下错误

EXCEPTION: ReferenceError: _ is not defined

如何避免这种情况? 正如我的假设,lodash代码在declare var _: any;

之前执行

2 个答案:

答案 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)

如果您使用的是TypeScript,则需要在文件中导入库:

import _ from 'lodash';

看看一个类似的问题: angular2 failing lodash import