加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Angular 2中的OnInit中的ngModel绑定为null

发布时间:2020-12-17 07:15:09 所属栏目:安全 来源:网络整理
导读:我使用Angular 2 ngModel绑定遇到了一个问题. plnkr 如果我使用ngModel将值绑定到子组件,则不会在子组件的OnInit函数上填充该值.所以,如果我绑定一个属性调用“boundName”,我尝试在OnInit中访问它,它将为null.但是,如果我将父控件中的相同值绑定到不使用ngM
我使用Angular 2 ngModel绑定遇到了一个问题.
plnkr

如果我使用ngModel将值绑定到子组件,则不会在子组件的OnInit函数上填充该值.所以,如果我绑定一个属性调用“boundName”,我尝试在OnInit中访问它,它将为null.但是,如果我将父控件中的相同值绑定到不使用ngModel而是输入参数,则可以在OnInit函数中访问该值.

所以..如果我的父组件创建一个子组件,如

<my-boundcomp [(ngModel)]="name" [(inputName)] ="name" ></my-boundcomp>

我的子组件onInit函数是

public ngOnInit() {
   console.log("Input Name :" + this.inputName);
   console.log("Bound Name :" + this.boundName);
   this._boundNameOnInit = this.boundName; // <--- Going to be null
   this._inputNameOnInit = this.inputName; // <--- Going to be not null

}

我发现这种行为很奇怪,而且出乎意料.我不确定这是一个错误还是我没有正确使用FormsModule ngModel,但有趣的是我认为我应该分享.

这是完整的plnkr https://plnkr.co/edit/Im5oz7q1HhG5MgGTTZ1R?p=preview

解决方法

这段代码

[(ngModel)]="name"

在OnInit中设置NgModel的值而不是BoundValueComponent.
从NgModel调用BoundValueComponent.writeValue时,则设置boundName.

我很确定这是按照设计的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读