如何理解Angular中的指令和管道以及服务
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,这篇文章将为大家详细讲解有关如何理解Angular中的指令和管道以及服务,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1. 指令 Directive指
千家信息网最后更新 2025年01月21日如何理解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安全错误
数据库的锁怎样保障安全
营口软件开发有限公司
服务器光纤网卡不稳定
湖南省学电脑软件开发在哪学
道屹道软件开发
专科网络安全和软件开发
小学网络安全卡片制作
我的世界怎么开手机服务器
软件测试属于软件开发时期
武汉在线内训软件开发
求生之路2有几个服务器
华为 网络技术工程 前景
小型机 x86服务器
西北大学学位论文数据库
软件开发可以做外包业务吗
数据库中用户表
通信软件和嵌入式软件开发
北京企业软件开发设计
服务器 原理
云服务器自动关闭应用程序
future集成数据库
网上购买服务器装备可以退回吗
日志型数据库
互联网消费科技公司排名
网络安全关于产品异构介绍
数据库创建的结果与分析
山东游戏软件开发外包公司
数据库中的对数函数
奉贤区电商软件开发定制要多少钱
泰拉瑞亚服务器为什么突然石化
重庆江津蔬菜配送软件开发