我是靠谱客的博主 纯真小松鼠,这篇文章主要介绍angular双向绑定详解,现在分享给大家,希望可以做个参考。

双向绑定原理

双向绑定将属性绑定与事件绑定结合在一起。

Angular 的双向绑定语法是方括号和圆括号的组合 [()]。

[] 进行属性绑定,() 进行事件绑定。

名称规则为 [输入名] + Change。

  • 属性绑定(@Input-输入) - 设置特定的元素属性。
  • 事件绑定(@Output-输出) - 侦听元素更改事件。

所以表单双向绑定中有 ngModel 和 ngModelChange,也可以自定义双向绑定属性。

ngModel

与表单元素进行双向绑定

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import { Component, OnInit } from '@angular/core'; @Component({ selector: 'app-bind', template: ` <div> <div>Name: {{ name }}</div> <input type="text" style="width: 300px;" nz-input name="name" [(ngModel)]="name" autocomplete="off"> </div> ` }) export class BindComponent implements OnInit { name = ''; constructor() { } ngOnInit(): void { } }

效果图

自定义双向绑定属性

组件-html

复制代码
1
2
3
4
<div> <div>inner: {{ value }}</div> <input style="width: 300px;" nz-input (input)="onInput(input.value)" #input autocomplete="off"> </div>

组件-ts

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; @Component({ selector: 'app-inner', templateUrl: './inner.component.html', styleUrls: ['./inner.component.scss'] }) export class InnerComponent implements OnInit { // 设定输入属性 @Input() value!: string; // 设定输出事件 @Output() valueChange: EventEmitter<string> = new EventEmitter(); constructor() { } ngOnInit(): void { } onInput(value: string){ // 触发输出事件-输出数据 this.valueChange.emit(value); } }

外部使用

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import { Component, OnInit } from '@angular/core'; @Component({ selector: 'app-outer', template: ` <div> <div>Name: {{ name }}</div> <app-inner [(value)]="name"></app-inner> </div> ` }) export class OuterComponent implements OnInit { name = ''; constructor() { } ngOnInit(): void { } }

效果图

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注靠谱客的更多内容!

最后

以上就是纯真小松鼠最近收集整理的关于angular双向绑定详解的全部内容,更多相关angular双向绑定详解内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(223)

评论列表共有 0 条评论

立即
投稿
返回
顶部