如何理解Angular中的指令和管道以及服务
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章将为大家详细讲解有关如何理解Angular中的指令和管道以及服务,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1. 指令 Directive指
千家信息网最后更新 2026年11月03日如何理解Angular中的指令和管道以及服务1. 指令
2. 管道
3. 服务
这篇文章将为大家详细讲解有关如何理解Angular中的指令和管道以及服务,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
1. 指令 Directive
指令是 Angular 提供的操作 DOM 的途径。指令分为属性指令和结构指令。
属性指令:修改现有元素的外观或行为,使用 [] 包裹。
结构指令:增加、删除 DOM 节点以修改布局,使用*作为指令前缀
1.1 内置指令
1.1.1 *ngIf
根据条件渲染 DOM 节点或移除 DOM 节点
没有更多数据
0; then dataList else noData">课程列表 没有更多数据
1.1.2 [hidden]
根据条件显示 DOM 节点或隐藏 DOM 节点 (display)
没有更多数据
1.1.3 *ngFor
遍历数据生成HTML结构
interface List { id: number name: string age: number}list: List[] = [ { id: 1, name: "张三", age: 20 }, { id: 2, name: "李四", age: 30 }]identify(index, item){ return item.id; }1.2 自定义指令
需求:为元素设置默认背景颜色,鼠标移入时的背景颜色以及移出时的背景颜色
Hello Angular
创建自定义指令
$ ng g d appHover# 全称 ng generate directive
import { AfterViewInit, Directive, ElementRef, HostListener, Input } from "@angular/core"// 接收参的数类型interface Options { bgColor?: string}@Directive({ selector: "[appHover]"})export class HoverDirective implements AfterViewInit { // 接收参数 @Input("appHover") appHover: Options = {} // 要操作的 DOM 节点 element: HTMLElement // 获取要操作的 DOM 节点 constructor(private elementRef: ElementRef) { this.element = this.elementRef.nativeElement } // 组件模板初始完成后设置元素的背景颜色 ngAfterViewInit() { this.element.style.backgroundColor = this.appHover.bgColor || "skyblue" } // 为元素添加鼠标移入事件 @HostListener("mouseenter") enter() { this.element.style.backgroundColor = "pink" } // 为元素添加鼠标移出事件 @HostListener("mouseleave") leave() { this.element.style.backgroundColor = "skyblue" }}2. 管道 Pipe
管道的作用是格式化组件模板数据。
2.1 内置管道
date日期格式化currency货币格式化uppercase转大写lowercase转小写json格式化json数据
{{ date | date: "yyyy-MM-dd" }}
2.2 自定义管道
需求:指定字符串不能超过规定的长度
// summary.pipe.tsimport { Pipe, PipeTransform } from '@angular/core';@Pipe({ name: 'summary' });export class SummaryPipe implements PipeTransform { transform (value: string, limit?: number) { if (!value) return null; let actualLimit = (limit) ? limit : 10; return value.substr(0, actualLimit) + '...'; }}// app.module.tsimport { SummaryPipe } from './summary.pipe'@NgModule({ declarations: [SummaryPipe] });3. 服务 Service
3.1 创建服务
$ ng g s services/TestService --skip-tests
import { Injectable } from '@angular/core';@Injectable({ providedIn: 'root'})export class TestService { }export class AppComponent { constructor (private testService: TestService) {}}3.2 服务的作用域
使用服务可以轻松实现跨模块跨组件共享数据,这取决于服务的作用域。
在根注入器中注册服务,所有模块使用同一个服务实例对象
import { Injectable } from '@angular/core';@Injectable({ providedIn: 'root'})export class CarListService {}在模块级别注册服务,该模块中的所有组件使用同一个服务实例对象
import { Injectable } from '@angular/core';import { CarModule } from './car.module';@Injectable({ providedIn: CarModule,})export class CarListService {}import { CarListService } from './car-list.service';@NgModule({ providers: [CarListService],})export class CarModule {}在组件级别注册服务,该组件及其子组件使用同一个服务实例对象
import { Component } from '@angular/core';import { CarListService } from '../car-list.service.ts'@Component({ selector: 'app-car-list', templateUrl: './car-list.component.html', providers: [ CarListService ]})
关于如何理解Angular中的指令和管道以及服务就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
指令
服务
数据
组件
节点
管道
元素
更多
格式
模块
背景
颜色
作用
实例
对象
结构
鼠标
事件
内容
属性
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
耶加雪菲
西安纸贵互联网科技有限公司
国智互联网科技
A股互联网金融科技公司
科技服务与互联网
奇酷互联网络科技
壕鑫互联网络科技
有木互联网科技
甘肃拓世互联网科技有限公司
上海电发互联网科技有限公司
科技赋能互联网健康
天速互联网络科技有限公司
恒银科技与互联网金融
上海宁丞科技互联网
彤创互联网科技有限公司
知域互联网科技有限公司大骗子
注册互联网科技公司经营范围大全
本届互联网博览会上的黑科技
内蒙古九一互联网科技
世界互联网科技成果奖
互联网科技公司起名
重生之互联网科技帝国
金融科技还是互联网
科技制造互联网公司
天津摩尔互联网科技
互联网之后的科技是什么
中国互联网十大科技股排名
内蒙古九一互联网科技
互联网科技资金流入
陕西云淼互联网科技公司