如何理解Angular中的指令和管道以及服务
发表于:2024-11-29 作者:千家信息网编辑
千家信息网最后更新 2024年11月29日,这篇文章将为大家详细讲解有关如何理解Angular中的指令和管道以及服务,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1. 指令 Directive指
千家信息网最后更新 2024年11月29日如何理解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安全错误
数据库的锁怎样保障安全
贵州网络服务器机柜物理机
进一步加强新时代网络安全
互联网科技展展会
外贸淘宝软件开发
河南180分 计算机网络技术
剖析网络安全
pxe 服务器
生物化学视频软件开发
网络安全体验室
无线网络技术虚拟实验
服务器电源适配器是多少伏的
青少年网络安全宣传主题漫画
手机管理求生之路服务器软件
浮游植物公开数据库
为什么电话号码无法连接服务器
dell 服务器 720
网络安全监测数据连接
四川大学网络安全研究所
云服务器系统哪种好
软件开发岗位哪个薪资最高
网络安全法运用范围
计算机网络安全防范技术有
linux设置数据库实例
神通数据库计算字符长度
avast 代理服务器
数据库的完善与维护方案
ibm服务器制造商
数据库对象包括在扩展名
辽宁标准软件开发发展现状
微机中网络技术应用和多媒体