Angular7中创建组件/自定义指令/管道的方法实例详解
组件
使用命令创建组件
•创建组件的命令:nggeneratecomponent组件名
•生成的组件组成:组件名.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"
})
//导出使用的类
exportclassDinerBirthComponentextendsCoreEdit{
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.属性型指令—改变元素、组件或其它指令的外观和行为的指令。
自定义指令
•创建自定义指令的命令:nggd目录/指令名称
•创建指令
1.创建指令的文件ts文件
2.在指令文件中写
import{Directive,ElementRef,Input,Output}from'@angular/core';
//自定义指令
@Directive({
selector:'[dinerHidden]'
})
//导出指令的模块
exportclassDinerHiddenDirective{
//el代表当前的元素
constructor(el:ElementRef){
//console.log()
el.nativeElement.style.display="none"
}
}
1.在index.ts中将该指令导入到ngModule中
//1.导入
import{DinerHiddenDirective}from"./diner.hidden";
//2.导出
exportconstDINER_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
•说明:把数字转换成字符串,根据本地化规则进行格式化,这些规则会决定分组大小和分组分隔符、小数点字符以及其它与本地化环境有关的配置项。
自定义管道
•创建管道的命令:nggpipe目录/管道名称
•手动创建管道•创建ts文件
import{Pipe,PipeTransform}from'@angular/core';
//自定义管道getGender
@Pipe({
name:'getGender'
})
//创建的管道的类
exportclassGenderPipeimplementsPipeTransform{
transform(value:string,exponent:string){
if(value=='')return"未知"
returnvalue==='m'?"男":"女"
}
}
•将这个管道添加到NgModuel中
//1.先导入
import{GenderPipe}from"./diner.gender";
//2.导出
exportconstDINER_COMPONENTS:Provider[]=[GenderPipe];
//3.添加到NgModule中的
@NgModule({
//这里列出的NgModule所导出的可声明对象可用在当前模块内的模板中
imports:[...],
//declarations:[组件]属于该模块的一组组件、指令和管道(统称可声明对象)。
//注意点:在这个源数据中只能声明组件、管道、指令
declarations:[DINER_COMPONENTS],
//定义此NgModule中要编译的组件集,这样它们才可以动态加载到视图中。
entryComponents:[...]
})
•在页面中引入使用
~{{item.DGender|getGender}} ~
总结
以上所述是小编给大家介绍的Angular7中创建组件/自定义指令/管道的方法实例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!