angular - Angular2 中的 Lodash,声明 var_ :any not working

标签 angular lodash

我在我的 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/

相关文章:

javascript - 将附加参数传递给函数调用 (lodash)

javascript - 如何对数组内不同的对象数组进行排序

angular - 如何在 Docker 容器内运行单元测试

css - Bootstrap 按钮轮廓在单击后保持突出显示

angular - 使用 ionic 3 angular 4 导航页面到选项卡页面推送

javascript - 如何按日期和时间降序排列数组?

node.js - Angular 5 npm 构建崩溃(重新平衡分配失败 - 进程内存不足)

html - 如何隐藏:before content in parent by hover on child?

javascript - 计算每个 object.entry 的长度属性

javascript - lodash 在 JavaScript 中对对象数组进行排序