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

Angular 2中的双向绑定与NgModel和突变绑定属性?

发布时间:2020-12-17 07:51:40 所属栏目:安全 来源:网络整理
导读:我正在使用Angular 2 beta 5. 这是我的观点: textarea [(ngModel)]="pendingMessage" (keydown.enter)="sendMessage()"/textarea 这是我的组件: @Component({ //...})export class AppComponent { private _pendingMessage: string; public get pendingMes
我正在使用Angular 2 beta 5.

这是我的观点:

<textarea [(ngModel)]="pendingMessage" (keydown.enter)="sendMessage()"></textarea>

这是我的组件:

@Component({
    //...
})
export class AppComponent {
    private _pendingMessage: string;

    public get pendingMessage() {
        return this._pendingMessage;
    }

    public set pendingMessage(value: string) {
        this._pendingMessage = value;
    }

    constructor() {
        this.pendingMessage = "initial stuff"; //this shows up in the text field initially
    }

    public sendMessage() {
        console.log(this.pendingMessage); //here,pending message is indeed whatever I typed in the text field
        this.pendingMessage = "blah";
        //here I expected the textfield to now contain "blah",but it doesn't
    }
}

这种双向绑定的整个概念似乎正常.当我在字段中键入一些文本并按Enter键时,我可以看到pendingMessage确实是我在字段中输入的内容.

但是,在我尝试将pendingMessage设置为“blah”的下面一行中,我还期望这更新文本字段以包含“blah”.为什么不是这样?这不是双向绑定的重点吗?

我知道Angular 2不能神奇地知道值何时发生变化,但我希望在评估事件后它会进行脏检查.有没有办法让它自动做这样的事情或以某种方式接受改变?我想避免使用申请.

更新

添加ngDefaultControl

<paper-input ngDefaultControl [(ng-model)]="address">

另见https://github.com/angular/angular/issues/5360

**

我想这是ngModel实现的当前限制.它绑定到元素的value字段,但对于textarea,它应该绑定到文本AFAIR字段.看起来textarea会触发一个ngModel监听的事件,使其在一个方向上工作.

您可以通过实现自定义ValueAccessor来解决此问题

也可以看看
– ngModel custom ValuesAccessor
– Angular 2 custom form input
– Bind angular 2 model to polymer dropdown

(编辑:李大同)

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

    推荐文章
      热点阅读