You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 7类中代码`_ = _;`的作用是什么?

Angular组件中_ = _;代码的作用解析

嘿,这个写法其实是为了解决Angular模板访问全局变量的限制,尤其是当你项目里用到Lodash(那个常用的JS工具库,全局变量就是_)的时候!

为什么要写这句?

Angular的模板文件(比如你的some.component.html)有个规则:它只能直接访问当前组件类中定义的属性和方法,没办法直接调用全局作用域里的变量。如果你的模板里需要用Lodash的方法(比如_.find()、_.groupBy()这类),直接写的话Angular会报错说_ is not defined。

所以_ = _;这句的核心作用就是:

  • 把全局环境中的_(也就是Lodash的实例)赋值给组件类自己的_属性
  • 这样模板就能通过组件的_属性,顺利调用Lodash的各种工具方法了

举个实际场景

比如你想在模板里过滤数据:

<ul>
  <li *ngFor="let user of _.filter(users, { status: 'active' })">
    {{ user.username }}
  </li>
</ul>

要是组件类里没加_ = _;,Angular根本认不出模板里的_;加上之后,模板就能通过组件类的_属性找到全局的Lodash啦。

额外小贴士

不过现在更推荐的做法是模块化导入Lodash,比如在组件里写:

import * as _ from 'lodash';

这样就不用依赖全局变量,代码也更清晰,符合Angular的模块化设计。但这种_ = _;的写法在一些老项目里还是挺常见的,算是一种快速适配的小技巧~

内容的提问来源于stack exchange,提问作者SkyWalker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:14:32