Angular-5-双向绑定

(为了防止有人和我一样脑抽,想:“ngModel只能用于表单,那其他标签怎么双向绑定?”,我直接说了:插值语法中的变量如:{{a}},它本身改变之后就会同步渲染html,也就是双向绑定了,如a:string=‘我是a’,之后执行过a=‘我不是a’后,页面自己就变化了。)

两种方法的区别,方法2可以通过js操作进行修改数值,方法1只能通过表单进行修改

方法1:

1.使用 [(ngModel)]="数值" 进行申明

2.只能用于表单元素

1.先在 app.module.ts/js中引入 FormsModule

import {FormsModule} from 'angular/forms';

@Ngmodule({
    ...,
    imports:[
        FormsModule
    ]
})

2.使用

<input [(ngModle)]="val" type="text">

<div>数值为:{{val}}</div>

方法2(只是单个组件绑定,分组直接看方法3):

1.导入库,方法同上,从angular/forms中导入:ReactiveFormsModule,两个import都要写

2.在每个组件对应的ts/js文件中:导入FormControl

3.声明要使用的变量,这里是num

4.使用

//省略引入的步骤。。。。

1.组件对应的ts/js文件:
 import {FormControl} from 'angular/forms'

 num= new FormControl('默认值')

//(2)
changeNum(){
    this.num.setValue('9999')//必须通过set进行更改
}


2.html文件:
<input type="text" [formControl]="num">
<p>num:{{num}}</p>

//可以修改num,操作看第一步的文件中的 (2)
<button (click)="changeNum()">修改num</button>

方法3(方法2的完整版):

1.导入库,方法同上,从angular/forms中导入:ReactiveFormsModule,两个import都要写

2.ts/js文件中引入 FromGroup

3.声明,和方法2的意思一样

4.使用(和2一样用setValue进行修改数值)

1.ts/js文件:
import {FormGroup,FormControl} from 'angular/forms'

formGroup_1 = new FormGroup({
    num:new FormControl('')
    age:new FormControl('')

})

submitFun(){
    console.log(this.formGroup_1.value)//获取一整组的数据,格式:{num:123,age:213}
}

2.html:
<form [formGroup]="formGroup_1">
    <input type="text" formControlName="num">
    <input type="text" formControlName="age">
    <button (click)="submitFun()">提交</button>//点击事件看1.
</form>
<div>num:{{num}}</div>
<div>age:{{age}}</div>

****可以<input type="text" formControlName="age" [(ngModle)]="age">,同时设置双向绑定 和 动态组件组获取一整组的数据

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值