0

我有这个

<input [value]="SomeModel.ValueFunct()" readonly="readonly"/>

有用!当函数返回值改变时,显示的值也会改变。

我如何检测值是否发生变化?

更新:

使用:

ngOnChanges(changes: SimpleChanges) : void{

或者

(gModelChange)="function($event)"

或者

(change)="function($event)"

[ngModel]="SomeModel.ValueFunct()"

当函数改变时不起作用,只有当用户改变输入时(但在这种情况下是只读的)

猛击:

http://next.plnkr.co/edit/Rj3NjtcGXTo9upt9?open=lib%2Fapp.ts&deferRun=1&preview

.

同样未解决的问题:

ngModel 改变,ngModelChange 没有被调用

4

1 回答 1

0

因此,不要直接绑定函数,而是绑定输入标签中的实际值。在您的打字稿文件中,编写 ngOnChanges() 生命周期事件并检测此更改。

所以,如果你想要单向数据绑定,那么

<input [ngModel]="variable">

在您的 .ts 文件中,导入OnChangesand SimpleChangesfromangular/core

ngOnChanges(changes: SimpleChanges) {
        if(changes[variable]) {
          // Perform your actions.
        }
    }

如果您想在使用单向数据绑定的同时处理 html 输入字段中更改的数据,则必须使用 (ngModelChange) 如下:

<input [ngModel]="variable"(ngModelChange)="function_to_fire_on_model_change($event)">
于 2019-08-03T07:22:03.017 回答