在使用Antd的时候,一直很好奇里面的双向绑定的自定义组件是怎么做的。

因为之前一直用,没有去细看文档。

今天抽空来简单的撸一下。

在ng中,()是单向数据流,从视图目标到数据源,[()]这样就是双向绑定了。简单的说就是ng给的一个语法糖,帮我们做了子组件内部事件发射的事件监听,然后赋值。

子组件:html

<input placeholder="test" type="text" [(ngModel)]="qc" #qq (ngModelChange)="testevent()">

子组件:ts

@Component({
selector: 'app-qingcheng',
templateUrl: './qingcheng.component.html',
styleUrls: ['./qingcheng.component.less']
})
export class QingchengComponent implements OnInit { @Input() username: string;
@Output() usernameChange = new EventEmitter(); constructor() { } ngOnInit() { }
testevent() {
console.log(this.username);
this.usernameChange.emit(this.username);
} }    

向外部发射事件的时候,一定要xxxChange,以Change结尾的事件才正确,不然无法双向绑定。。

这个坑找了半天才解决:https://segmentfault.com/a/1190000016651999

父组件:html

<app-qingcheng #qingcheng  [(qc)]="testbind"></app-qingcheng>
{{testbind}}

父组件:ts

@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.less']
})
export class AppComponent {
title = 'qctest';
testbind = ''; }

最新文章

  1. 【笔记】MySQL查询排名
  2. 基于物理渲染的渲染器Tiberius计划
  3. 通过js给android控件WebView设padding
  4. csipsimple,linphone,webrtc比较
  5. Inversion Sequence(csu 1555)
  6. BST树
  7. Java BigDecimal大数字操作
  8. Android——显示当前运行所有服务,判断服务是否运行
  9. C#如何判断质数(转)
  10. 百度云世界里的“七种武器”:PCS、BAE、Site App、ScreenX等
  11. python的unittest測试框架的扩展浅谈
  12. 初入前端框架bootstrap--Web前端
  13. Linux中find的使用(转)
  14. VMware与Hyper-V的冲突解决 VMware Workstation 与 Device/Credential Guard 不兼容 解决方案
  15. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2-新增锁定用户与解除锁定用户的功能
  16. 更改oracle数据库密码(因为密码过期)
  17. day20_python_1124
  18. MySQL基本教程(一)
  19. JTextPane或JTextPane设置了滚动条,文本增加后,滚动条自动下滑,追加文本的例子
  20. 解决《UNIX环境高级编程》(APUE)示例代码的编译问题

热门文章

  1. Java内部类使用场景和作用
  2. linux学习(五)Linux 文件与目录管理
  3. 白话ansible-runner--1.环境搭建
  4. xss利用——BeEF#stage2(初始并持续化控制)
  5. tomcat在windows下安装
  6. 全世界最强的算法平台codeforces究竟有什么魅力?
  7. Unity Shader学习笔记-1
  8. CTFshow_Web入门源码
  9. 记录一下第一次写 50行 SQL代码
  10. 源码安装IVRE