Angular双向绑定简单理解

在使用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 = '';

}
复制代码

 

posted on   快乐海盗  阅读(2605)  评论(0编辑  收藏  举报

编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示