使用ngModel创建组件

@angular/forms里有个接口用来实现支持[(ngModel)],具体可查ControlValueAccessor,这边还未深入理解只是为了开发组件而初步了解

interface ControlValueAccessor {writeValue(obj: any): voidregisterOnChange(fn: any): voidregisterOnTouched(fn: any): void}

我们要做的事就是实现这个接口

import {NG_VALUE_ACCESSOR,ControlValueAccessor} from "@angular/forms"
@Component({selector: 'app-search-select',templateUrl: './search-select.component.html',styleUrls: ['./search-select.component.less'],providers: [{provide: NG_VALUE_ACCESSOR,useExisting: forwardRef(() => SearchSelectComponent),multi: true}]
})
export class SearchSelectComponent implements ControlValueAccessor {
writeValue(obj: any): void
      registerOnChange(fn: any): void
      registerOnTouched(fn: any): void
}
 

 下面是我实现下拉框的子组件和父组件值的双向绑定,也很好的解释angular 的双向数据绑定是由属性绑定和方法绑定结合在一起的

export class SearchSelectComponent implements ControlValueAccessor {@Input() ngModel:string;@Output() ngModelChange=new EventEmitter<string>();@Input() options:Array<any>;private selectValue:string;private isShow:boolean;private selectList:Array<any>;constructor() {this.isShow=false;}ngOnChanges(){this.selectValue=this.ngModel;this.selectList=this.options;}registerOnChange(fn: any): void {// 页面值改变时,调用该方法,传入新值实现回传
}registerOnTouched(fn: any): void {}ngOnInit() {}// 赋值时调用writeValue(val: object): void {}selectItem(value){this.ngModelChange.emit(value);}showSelectList(){this.isShow=true;}hideSelectList(){this.isShow=false;}
}
View Code

 

  

转载于:https://www.cnblogs.com/llcMite/p/11449516.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/482433.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

制定城市大脑建设标准应遵循的十条原则探讨

作者&#xff1a;刘锋本文发表于2022年3月《中国建设信息化杂志》2015以来&#xff0c;城市大脑被提出并成为前沿科技和智慧城市建设领域的新热点。到2022年&#xff0c;全国已经有包括北京、上海、杭州、深圳、郑州、呼和浩特、合肥等数百个城市宣布建设城市大脑的规划。有包括…

图灵测试,时至今日还有意义吗?

来源&#xff1a;学术头条我们必须承认&#xff0c;机器运行时的很多中间状态&#xff0c;是在设计初始指令时无法预见的。机器自己也会感悟出很多知识。在这种情況下&#xff0c;我们有必要将机器视为智能的。艾伦图灵图灵测试由人工智能之父—艾伦图灵提出&#xff0c;指测试…

AI科普微视频丨深度学习如何帮助自动驾驶

来源&#xff1a;中国人工智能学会人工智能是如何产生的&#xff1f;人工智能的发展为什么充满曲折&#xff1f;为什么说图灵是人工智能之父&#xff1f;为加大AI科普力度&#xff0c;推动文化传播&#xff0c;中国人工智能学会推出了“AI科普微视频”栏目&#xff0c;以每期2~…

在新的数学证明中,人工智能取胜

来源&#xff1a;ScienceAI编辑&#xff1a;绿萝一个以 AlphaGo 等人工智能系统为原型的新计算机程序解决了组合学和图论中的几个未解决问题。去年 3 月&#xff0c;爱荷华州立大学&#xff08;Iowa State University&#xff09;的数学家 Leslie Hogben 和 Carolyn Reinhart 收…

day44-前端知识之HTML内容

什么是前端?什么是后端? # 任何与用户直接打交道的操作界面都可以称之为前端,前端跟python没有任何关系 比如:电脑界面,手机界面,平板界面# 暂时先理解成 幕后操作者(不直接与用户打交道)为什么要学前端? 因为全栈开发工程师就是同时懂前端和后端 1.信心满满 老子一定能学会…

车路协同让城市更智慧

来源&#xff1a;深城物联在高速发展的现代社会&#xff0c;纷繁复杂的城市道路交织成奔腾不息的交通动脉。今年&#xff0c;全国政协委员、百度董事长兼首席执行官李彦宏在提案中关注“智能交通”“自动驾驶”。在新一代信息技术不断发展的背景下&#xff0c;汽车与城市道路的…

gin-jwt对API进行权限控制

前言 之前文章简单介绍了如何运行ginvue的前后端分离开源项目&#xff0c;该项目是学习了Gin实践教程后结合vue-element-admin写的&#xff0c;该教程讲得很详细&#xff0c;适合入门Gin。本篇文章将介绍ginvue的前后端分离开源项目中如何使用gin-jwt对API进行权限验证。 安装g…

Michael Brostein 最新几何深度学习综述:超越 WL 和原始消息传递的 GNN

来源&#xff1a;前沿科技编译&#xff1a;OGAI编辑&#xff1a;陈彩娴如何突破基于 WL 测试和消息传递机制的 GNN 的性能瓶颈&#xff1f;且看几何深度学习旗手、牛津大学教授 Michael Brostein 如是说。图可以方便地抽象关系和交互的复杂系统。社交网络、高能物理、化学等研究…

day45-前端CSS

1.0 CSS介绍 CSS&#xff08;Cascading Style Sheet&#xff0c;层叠样式表)定义如何显示HTML元素。 当浏览器读到一个样式表&#xff0c;它就会按照这个样式表来对文档进行格式化&#xff08;渲染&#xff09;。 2.0 CSS语法 2.1 CSS实例 每个CSS样式由两个组成部分&#xff1…

人工智能克服了类脑硬件的绊脚石

来源&#xff1a;ScienceAI编辑&#xff1a;萝卜皮当今最成功的人工智能算法——人工神经网络&#xff0c;松散地基于我们大脑中复杂的真实神经网络网络。但与我们高效的大脑不同&#xff0c;在计算机上运行这些算法会消耗巨大的能量&#xff1a;最大的模型在其生命周期中消耗的…

图灵奖起源

来源 &#xff1a; 图灵人工智能在计算机科学的世界里&#xff0c;也有很多带来了全球变革的超级英雄。他们都曾经辉煌一时&#xff0c;但逐渐被公众遗忘。于是我们想做一件事情&#xff0c;用直观的动漫方式&#xff0c;带大家认识计算机宇宙中的那些超级英雄。故事&#xff0…

吵翻了!AI 顶会设置媒体静默期,作者不信邪提前宣传被拒稿,加强盲审是促进公平还是阻止了学术交流?...

来源&#xff1a;AEIC学术交流中心3月2日&#xff0c;计算机视觉三大顶会之一的CVPR2022论文接收结果公布&#xff0c;在经历了漫长的社交媒体静默期后&#xff0c;社交媒体被论文作者刷屏了&#xff0c;部分作者还展示了自己的论文成果。1CVPR2022论文接收结果作为人工智能领域…

巨头们的先进封装技术解读

来源 &#xff1a; 图灵人工智能在上《先进封装最强科普》中&#xff0c;我们对市场上的先进封装需求进行了一些讨论。但其实具体到各个厂商&#xff0c;无论是英特尔&#xff08;EMIB、Foveros、Foveros Omni、Foveros Direct&#xff09;、台积电&#xff08;InFO-OS、InFO-L…

猜测未来微服务架构

微服务架构 微服务的概念在2014年3月由Martin Fowler首次提出。 微服务架构解决的核心问题及其相应的开源组件如下所示&#xff1a; RPC框架 (Service-to-service calls) Spring Boot/Spring MVCDubbogRPCthrift服务注册和发现 (Service registration and discovery) 注册中心 …

联邦学习怎样应用在推荐系统中?

来源&#xff1a;知乎丨羊老头说起联邦学习&#xff0c;大家再熟悉不过了&#xff0c;由于其能在数据不移动的前提下协同训练一个全局共享的模型&#xff0c;迅速成为了人工智能安全领域的一个研究热点。推荐系统作为人工智能领域最振奋人心的应用之一&#xff0c;与联邦学习相…

红帽、Docker、SUSE 在俄罗斯停服

出品&#xff1a;CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;整理&#xff1a;苏宓继 Oracle、Google、苹果等科技公司和 React 开源项目之后&#xff0c;如今 Linux 发行版也牵扯进俄乌之间冲突的漩涡中。其中一个是全球最大的独立开源软件公司 SUSE&#xff0c;一个…

spring boot 配置动态刷新

本文测试使用的spring cloud版本为&#xff1a; Dalston.SR1 很多朋友只知道spring cloud config可以刷新远程git的配置到内存中&#xff0c; 却不知道spring cloud config的客户端可以脱离服务端使用&#xff0c; 更不知道spring cloud config客户端结合actuator还可以刷新本地…

深度学习撞墙了

来源&#xff1a;机器之心早在 2016 年&#xff0c;Hinton 就说过&#xff0c;我们不用再培养放射科医生了。如今几年过去&#xff0c;AI 并没有取代任何一位放射科医生。问题出在哪儿&#xff1f;近年来&#xff0c;AI 在大数据、大模型的深度学习之路上一路狂奔&#xff0c;但…

Transformer 会接管人工智能?

来源&#xff1a;ScienceAI编辑&#xff1a;绿萝想象一下&#xff0c;你去当地的五金店&#xff0c;在货架上看到一种新的锤子。你听说过这把锤子&#xff1a;它比其他锤子敲得更快、更准确&#xff0c;在过去的几年里&#xff0c;它已经淘汰了许多其他锤子&#xff0c;至少在大…

Nat. Commun.速递:合群者有着相似的大脑活动

来源&#xff1a;集智俱乐部作者&#xff1a;郭瑞东 作者&#xff1a;梁金编辑&#xff1a;邓一雪摘要Convergent processing of the world may be a factor that contributes to social connectedness. We use neuroimaging and network analysis to investigate the associat…