摘要:一准备工作以下简称已经跟之前版本大有不同。新建工程后,可方便创建简称是什么呢就是一个包的源码包。本文主要介绍本人写的一个组件。这是的一个可以方便原生和传值。本组件两个方法都重写了,因为值变更的时机自定义成了。
一、准备工作
Angular7(以下简称ng7),已经跟之前版本大有不同。新建工程后,可方便创建library(简称lib),lib是什么呢?就是一个npm包的源码包。npm作为强大的包管理器,已经成为很多FEer分享智慧成果的法器。本文主要介绍本人写的一个radio组件。
二、开发组件radio过程 1、使用ng cli,新建工程,创建lib// 安装ng cli npm install -g @angular/cli // 新建工程 ng new ng-project // 进入ng-project 创建一个lib ng generate library radio2、生成结构如图所示 接下来开始写组件 3、radio结构如下
4、radio组件主体代码如下
export class RadioGroupComponent implements ControlValueAccessor { /* radio 数组 */ @Input() data: Radio[] = []; /* radio 类型 原生或者按钮类型*/ @Input() type: string; /* name标识 */ @Input() name: string = this.idSer.generate().replace(/-/g, "_"); /* 水平排列 */ @Input() horizontal: boolean; /* 禁用 */ @Input() disabled: boolean; /* radio 值 */ @Input() value: any; constructor(private idSer: IdService) { } clickHandler(val: any) { this.value = val; // 更改control的值 this.controlChange(this.value); this.controlTouch(this.value); } writeValue(value: any): void { this.value = value; } registerOnChange(fn: Function): void { this.controlChange = fn } registerOnTouched(fn: Function): void { this.controlTouch = fn } private controlChange: Function = () => { } private controlTouch: Function = () => { } }
这是ng的一个forms API,可以方便原生DOM和ng forms传值。在组件元数据中这样定义
@Component({ selector: "radiogroup", templateUrl: "./radiogroup.component.html", providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => RadioGroupComponent), multi: true, }] })
的
注意,是重写一个还是都要重写。本组件两个方法都重写了,因为值变更的时机自定义成了blur。
三、这就是我的关于radio组件的封装开发,还请各位大牛朋友们多多指点,后续会继续推出关于Angular的开发以及研究。文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/105235.html
摘要:记录自己在学习中对路由的理解路由不在的包中如果要使用的路由需要从中引入路由的使用子路由使用子路由使用方法父组件中在中导入模块然后在中加入即可就是路由的出口表示路由对应的组件应该在这里显示 记录自己在学习angular中对路由的理解 angular路由不在angular的包中, 如果要使用angular的路由, 需要从@angular/router中引入 路由的使用: 子路由使用: im...
摘要:起因看到项目中很多,使用方法都是使用标签引入。解决方案在网上了解到可以将众多文件合并成一个,用的方式区分不同的图案,然后使用标签引用。在版本废弃了命令,不再支持自定义,而中的未提供自定义或是执行外挂脚本的配置。 起因 看到项目中很多svg,使用方法都是使用img标签引入。于是就想将svg合并,像字体图标那样方便使用。 解决方案 在网上了解到可以将众多svg文件合并成一个,用symb...
摘要:年末促销葡萄城岁末福利火热放送中前端开发工具包年度第三个大版本已经正式发布,本次更新除了全面支持之外,还允许用户使用在前端更高效地导出智能的分组表头属性全新的主题示例以及功能增强。 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 【年末促销】葡萄城 2018 岁末福利火热放送中 WijmoJS(前端开发工具包)2018年度第三个大版本已经正...
阅读 2476·2021-11-16 11:45
阅读 2446·2021-10-11 10:59
阅读 2253·2021-10-08 10:05
阅读 3820·2021-09-23 11:30
阅读 2373·2021-09-07 09:58
阅读 795·2019-08-30 15:55
阅读 775·2019-08-30 15:53
阅读 1924·2019-08-29 17:00