angular双向绑定详解

 更新时间:2021年12月22日 15:46:00   作者:桐溪漂流  
这篇文章主要为大家介绍了angular双向绑定,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

双向绑定原理

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

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

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

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

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

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

ngModel

与表单元素进行双向绑定

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

<div>
  <div>inner: {{ value }}</div>
  <input style="width: 300px;" nz-input (input)="onInput(input.value)" #input autocomplete="off">
</div>

组件-ts

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);
  }
}

外部使用

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 { }
}

效果图

效果图

总结

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

相关文章

  • AngularJS入门教程之过滤器用法示例

    AngularJS入门教程之过滤器用法示例

    这篇文章主要介绍了AngularJS过滤器用法,结合实例形式简单的分析了AngularJS过滤器的功能及基本用法,并举例说明了自定义过滤器的实现技巧,需要的朋友可以参考下
    2016-11-11
  • AngularJs用户输入动态模板XSS攻击示例详解

    AngularJs用户输入动态模板XSS攻击示例详解

    这篇文章主要给大家介绍了关于AngularJs用户输入动态模板XSS攻击的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用angularjs具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-04-04
  • AngularJS前端页面操作之用户修改密码功能示例

    AngularJS前端页面操作之用户修改密码功能示例

    这篇文章主要介绍了AngularJS前端页面操作之用户修改密码功能,结合具体实例形式分析了AngularJS针对前端用户修改密码的判断操作实现技巧,需要的朋友可以参考下
    2017-03-03
  • Angular4 中常用的指令入门总结

    Angular4 中常用的指令入门总结

    这篇文章主要给大家总结了一些关于Angular4 中入门常用的指令,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来跟着小编一起学习学习吧。
    2017-06-06
  • angularjs请求数据的方法示例

    angularjs请求数据的方法示例

    这篇文章主要给大家介绍了关于angularjs请求数据的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用angularjs具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-08-08
  • 详解AngularJs ui-router 路由的简单介绍

    详解AngularJs ui-router 路由的简单介绍

    本篇文章主要介绍了AngularJs ui-router 路由的简单介绍。简单明了的说明了ngRoute和ui-router的区别和用法,有兴趣的可以了解一下
    2017-04-04
  • 浅谈Angularjs中不同类型的双向数据绑定

    浅谈Angularjs中不同类型的双向数据绑定

    这篇文章主要介绍了浅谈Angularjs中不同类型的双向数据绑定,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • 使用JavaScript的AngularJS库编写hello world的方法

    使用JavaScript的AngularJS库编写hello world的方法

    这篇文章主要介绍了使用JavaScript的AngularJS库编写hello world的方法,AngularJS是一款高人气的JavaScript库,需要的朋友可以参考下
    2015-06-06
  • 深入理解AngularJS中的ng-bind-html指令和$sce服务

    深入理解AngularJS中的ng-bind-html指令和$sce服务

    这篇文章给大家详细介绍了AngularJS中的ng-bind-html指令和$sce服务,对大家学习AngularJS具有一定参考借鉴价值,有需要都可以参考学习。
    2016-09-09
  • 解决angularjs前后端分离调用接口传递中文时中文乱码的问题

    解决angularjs前后端分离调用接口传递中文时中文乱码的问题

    今天小编就为大家分享一篇解决angularjs前后端分离调用接口传递中文时中文乱码的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08

最新评论