首页 > 编程知识 正文

angular 组件继承(angular创建组件)

时间:2023-05-05 20:21:19 阅读:98929 作者:665

环境搭建

使用尼日利亚新cc-二维码创建一个项目尼日利亚新cc-二维码

开发组件

在项目src/app/shard目录中,使用命令ng g模块二维码创建一个二维码模块ng g模块二维码

2.在项目src/app/分片(分片自己创建一个目录)目录中,使用命令ng g分量二维码创建一个二维码组件,删除没用的qrcode.component.html和qrcode.component.xxx样式文件,因为我们这个二维码组件不需要这个,只要有分时(同分时)里面实现就可以了,所以删除!

ng g分量二维码

3.由于我们的组件依赖于第三方的qrious插件,所以需要通过国家预防机制安装qrious -保存安装。

国家预防机制安装qrious -保存

4.在之前创建的qrcode.component.ts中,实现二维码,具体的内容如下。

//这里引入的是有角的模块的内容

从“@棱角分明/核心”导入{组件、OnInit、Input、ElementRef、OnChanges、OnDestroy、简单更改};

//这里引入我们安装的第三方二维插件

从“QRious”导入QRious

/**

* 二维码

*/

@组件({ 0

选择器: ' cc-二维码,

template: `` //这里不需求模板,所以放空,如果觉得这个不好看,可以使用指令的方式实现

})

导出类QrcodeComponent实现OnChanges,OnDestroy {//这里实现了变更与OnDestroy接口,一个是用于监听参数改变用的,一个是销毁组件用的

//二维码值参数

@Input()值=' ';

//二维码背景颜色,默认我们给个白色

@Input()背景='白色;

//二维码前景色,也就是图案的颜色,默认我们给个黑色

@Input()前景='黑色

//二维码背景透明度,取值范围是0-1.0之间

@ Input()背景alpha=1.0

//二维码前景的透明度,取值范围是0-1.0之间

@ Input()前景alpha=1.0

//二维码的误差校正级别(左、中、右、高)

@Input()级别=' L '

//生成的图片类型,默认图像/png

@ Input()mime=' image/png ';

//内边距

@Input()填充=0;

//二维码大小(宽高)

@Input()大小=100;

//是否使用画布生成,默认为假的,图片方式

@ Input()canvas=false;

//二维码实例对象

qr: QRious

构造函数(私有elementRef: ElementRef) { }

ngOnChanges(变更:简单变更): void {

//这里判断参数是否改变

如果(变化。背景| |变化。背景alpha | |变化。前景| |

变化。foregroundAlpha | |更改。级别| |更改。mime | |

变化。填充| |更改。大小| |变化。值| |更改。画布){ 0

这个。QR coded build();

}

}

//二维码构造的方法

qrcodedBuild(): void {

//这里获取元素对象

const element : HTMlelement=this。ElEMENTReF。原生元素;

//清空里面的内容

element.innerHTML=

//为二维码插件初始化

this.qr=新的Qrius({ 0

背景技术在这个背景下,

背景阿尔法:这个背景阿尔法,

前景这个前景,

foregroundAlpha:这个。foregroundAlpha,

高度:这个高度,

mime:这个。哑剧,

填充:这个。填充,

尺码:这个。尺码,

这个值

});

//判断是否需要使用画布的方式,默认使用的是图片方式

如果(这个。画布){ 0

元素。appendchild(这个。二维码。帆布);

} else {

元素。appendchild(这个。二维码。图像);

}

}

//将二维码转换成base64编码

todaytaul(:)字符串{ 0

返回这个。二维码。TotaToul();

}

//这里要销毁组件

ngOnDestroy(){ 0

this.qr=null

}

}

组件的使用

1.使用时只需要引入模块,然后就可直接在超文本标记语言中使用了

//业务模块

从" @angular/platform-browser "导入{ BrowserModule };

从“@棱角分明/核心”导入{ ng module };

//引入模块

从""导入{ QrcodeModule } ./分片/二维码/二维码。模块';

从""导入{ AppComponent } ./app。组件';

@ ng模块({ 0

声明: [

AppComponent

],

进口: [

浏览器模块,

QrcodeModule

],

providers: [],

bootstrap: [AppComponent]

})

导出类AppModule { }

//业务超文本标记语言

差异

cc-qrcd[值]=' 12345 6789 ' '/cc-QC rcd

/div

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。