如何理解Angular中的指令和管道以及服务
发表于:2025-11-13 作者:千家信息网编辑
千家信息网最后更新 2025年11月13日,这篇文章将为大家详细讲解有关如何理解Angular中的指令和管道以及服务,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1. 指令 Directive指
千家信息网最后更新 2025年11月13日如何理解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安全错误
数据库的锁怎样保障安全
isc大会网络安全防护
wow霜之哀伤数据库
天津加盟店软件开发
dns找不到服务器地址
如何找回丢失的数据库数据
数据库怎么收缩数据库
江苏标准互联网科技有限公司
vps服务器安全
自动查询数据库
国泰安数据库总经理名称
暗黑2ps5无法连接服务器
手机远程网络服务器
网络安全防线训练
贵阳信息化软件开发
沈阳聚通网络技术公司
乌鲁木齐热力软件开发
泛站群服务器租用
软件开发的模块
演绎数据库系统
随着网络技术的不断发展人们
wow霜之哀伤数据库
pdm数据库升级
数据库openfile
艾尔登法环维护服务器
妇幼信息平台网络安全自查
服务器部署多个apache项目
山东省网络安全制度文件
怎么一个服务器多人使用
银川军民融合中心网络安全
网络安全的演讲稿十分钟