gpt4 book ai didi

typescript - Angular 2 监听模型变化

转载 作者:太空狗 更新时间:2023-10-29 17:01:18 25 4
gpt4 key购买 nike

我如何监听 ngModel 的变化?问题是:如果我将(更改)或(单击)事件链接到元素,在我访问模型时在给定函数中,它仍然没有改变。如果我添加 500 毫秒的 setTimeout,那么我可以更改模型。知道如何在没有 setTimeout 的情况下获得真正的更改对象,这是非常糟糕的方法吗?html中的代码:

<input type="checkbox" (click)="autoJoinToggle()" [(ngModel)]='active.bookmark.autoJoin'> Autojoin

组件中的代码:

 console.log(this.active.bookmark.autoJoin) // returns the current value (before the change)
setTimeout(() => {console.log(this.active.bookmark.autoJoin);}, 500); //returns the value after the change

我不能用 Angular Control 做到这一点,因为我需要绑定(bind)模型并且“事件”对象首先不存在,如果我想在定义“事件”之后更新控件的值,我需要监听“事件”对象的变化(超时变化)。局部变量和 @ViewChild 也存在同样的问题 -> 我仍然需要知道“事件”何时更改,所以我也更新了局部变量。

还有一张动图: enter image description here

最佳答案

(ngModelChange)="doSomething($event)"

autoJoinToggle(cb){ this.active.bookmark.autoJoin = cb; //do something.. }

<input #cb type="checkbox" (click)="autoJoinToggle(cb.checked)"
[(ngModel)]='active.bookmark.autoJoin'>

我认为您解释的行为是一个错误,并且已经提供但未添加拉取请求 https://github.com/angular/angular/issues/6311 .

关于typescript - Angular 2 监听模型变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35481871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com