CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
Angular 路线图实战/课时/指令与管道
RawBlame
课时目录12 节

Angular 路线图实战

  1. 01Angular 入门与 CLI
  2. 02组件与生命周期
  3. 03模板与数据绑定
  4. 04指令与管道
  5. 05表单
  6. 06服务与依赖注入
  7. 07HttpClient 与安全
  8. 08Router 与懒加载
  9. 09RxJS 与 Signals
  10. 10SSR、测试与 i18n
  11. 11NgModule 与库
  12. 12综合练习

指令与管道

结构/属性指令、内置与自定义 Pipe。

30 分钟

指令与管道

路线图「Directives & Pipes」:结构型指令 增删 DOM 节点,属性型指令 改元素外观或行为;管道(Pipe) 在模板中做格式化(日期、货币、大小写)。存量项目常见 *ngIf/*ngFor,新项目优先 @if/@for。

学习目标

  • 区分结构型与属性型指令
  • 使用内置 Pipe 与自定义 Pipe
  • 读懂存量代码中的 *ngDirectives 与 CommonModule

核心概念

结构型与属性型

@Component({
  standalone: true,
  imports: [CommonModule, DatePipe],
  template: `
    @if (user) {
      <p>欢迎,{{ user.name | uppercase }}</p>
    }
    <ul>
      @for (t of tracks; track t.slug) {
        <li [class.highlight]="t.featured">{{ t.title | titlecase }}</li>
      } @empty {
        <li>暂无课程</li>
      }
    </ul>
    <span>{{ updatedAt | date: "yyyy-MM-dd" }}</span>
  `,
})
export class DirectiveDemoComponent {
  user = { name: "learner" };
  updatedAt = new Date();
  tracks = [{ slug: "ang-intro", title: "angular intro", featured: true }];
}

自定义 Pipe

@Pipe({ name: "slugify", standalone: true })
export class SlugifyPipe implements PipeTransform {
  transform(value: string): string {
    return value.toLowerCase().replace(/\s+/g, "-");
  }
}

模板:{{ title | slugify }}。

与 React/Next 对照

AngularReact说明
@if / *ngIf{cond && <…>}条件渲染
@for / *ngFor.map()列表
date pipeIntl.DateTimeFormat / dayjs格式化
自定义 pipe工具函数模板内调用

Next.js 多在 JSX 中直接调函数;Angular 管道更声明式、可纯函数缓存(pure: true)。

练习

  • 写 truncate 管道,超长标题显示省略号
  • 用 [ngClass] 切换「featured / normal」样式

小结

指令改结构/属性,管道做展示转换。 下一课表单。

加载本节练习…
← 上一课模板与数据绑定下一课 →表单