angular 手动编译_Angular7中创建组件/自定义指令/管道的方法实例详解

组件

使用命令创建组件

•创建组件的命令:ng generate component 组件名

•生成的组件组成: 组件名.html 、组件名.ts、组件名.less、组件名.spec.ts

•在组件的控制器

@Component({

selector: 'app-heroes',

templateUrl: './heroes.component.html',

styleUrls: ['./heroes.component.less']

})

手动创建组件

1.创建一个组件ts文件

2.在组件中设置

// 1. 导入包,按需导入

import { Component } from "@angular/core";

import { CoreEdit, NavLayoutComponent } from "@reco/core";

import { DinerService } from "../Service";

// 2.定义当前组件的修饰器

@Component({

// 支出对外使用的名称

selector: "diner-birth",

// 使用的模板

templateUrl: "./diner.birth.html"

})

// 导出使用的类

export class DinerBirthComponent extends CoreEdit {

constructor(

private _dinerService: DinerService,

layout: NavLayoutComponent

) {

super(_dinerService, 'diner-birth', layout);

}

}

1.在index.ts文件中引入并导出

// 1. 导入

import { DinerBirthComponent } from "./diner.birth";

// 2. 导出

export { DinerBirthComponent }

// 3. 注册

@NgModule({

// 这里列出的 NgModule 所导出的可声明对象可用在当前模块内的模板中

imports: [....],

// declarations:[ 组件 ] 属于该模块的一组组件、指令和管道(统称可声明对象)。

// 注意点:在这个源数据中只能声明组件、管道、指令

declarations: [DinerBirthComponent],

// 定义此 NgModule 中要编译的组件集,这样它们才可以动态加载到视图中。

entryComponents: [....],

// 导出的模块

exports: [....]

})

指令

认识指令

•说明:在 Angular 中有三种类型的指令: ◦1.组件 — 拥有模板的指令

◦2.结构型指令 — 通过添加和移除 DOM 元素改变 DOM 布局的指令

◦3.属性型指令 — 改变元素、组件或其它指令的外观和行为的指令。

自定义指令

•创建自定义指令的命令: ng g d 目录/指令名称

•创建指令

1.创建指令的文件ts文件

2.在指令文件中写

import { Directive, ElementRef, Input, Output } from '@angular/core';

// 自定义指令

@Directive({

selector: '[dinerHidden]'

})

// 导出指令的模块

export class DinerHiddenDirective {

// el 代表当前的元素

constructor(el: ElementRef) {

// console.log()

el.nativeElement.style.display = "none"

}

}

1.在index.ts中将该指令导入到ngModule中

// 1.导入

import { DinerHiddenDirective } from "./diner.hidden";

// 2.导出

export const DINER_COMPONENTS: Provider[] = [ DinerHiddenDirective ];

// 3.ngModule中注册

@NgModule({

// 这里列出的 NgModule 所导出的可声明对象可用在当前模块内的模板中

imports: [],

// declarations:[ 组件 ] 属于该模块的一组组件、指令和管道(统称可声明对象)。

// 注意点:在这个源数据中只能声明组件、管道、指令

declarations: [DINER_COMPONENTS],

// 定义此 NgModule 中要编译的组件集,这样它们才可以动态加载到视图中。

entryComponents: []

})

1.在页面中引用

管道中的常用API

asyncPipe

•说明:async 管道会订阅一个 Observable 或 Promise,并返回它发出的最近一个值。 当新值到来时,async 管道就会把该组件标记为需要进行变更检测。当组件被销毁时,async 管道就会自动取消订阅,以消除潜在的内存泄露问题。

CurrencyPipe

•说明:把数字转换成金额字符串, 根据本地化规则进行格式化,这些规则会决定分组大小和分组分隔符、小数点字符以及其它与本地化环境有关的配置项。

DatePipe

•说明:把数字转换成金额字符串, 根据本地化规则进行格式化,这些规则会决定分组大小和分组分隔符、小数点字符以及其它与本地化环境有关的配置项。

DecimalPipe

•说明:把数字转换成字符串, 根据本地化规则进行格式化,这些规则会决定分组大小和分组分隔符、小数点字符以及其它与本地化环境有关的配置项。

自定义管道

•创建管道的命令:ng g pipe 目录/管道名称

•手动创建管道 •创建ts文件

import { Pipe, PipeTransform } from '@angular/core';

// 自定义管道 getGender

@Pipe({

name: 'getGender'

})

// 创建的管道的类

export class GenderPipe implements PipeTransform {

transform(value: string, exponent: string) {

if (value == ' ') return "未知"

return value === 'm' ? "男" : "女"

}

}

•将这个管道添加到NgModuel中

// 1. 先导入

import { GenderPipe } from "./diner.gender";

// 2.导出

export const DINER_COMPONENTS: Provider[] = [GenderPipe];

// 3.添加到NgModule中的

@NgModule({

// 这里列出的 NgModule 所导出的可声明对象可用在当前模块内的模板中

imports: [...],

// declarations:[ 组件 ] 属于该模块的一组组件、指令和管道(统称可声明对象)。

// 注意点:在这个源数据中只能声明组件、管道、指令

declarations: [DINER_COMPONENTS],

// 定义此 NgModule 中要编译的组件集,这样它们才可以动态加载到视图中。

entryComponents: [...]

})

•在页面中引入使用

~

{{item.DGender | getGender}}

~

总结

以上所述是小编给大家介绍的Angular7中创建组件/自定义指令/管道的方法实例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值