我正在使用ChangeDetectionStrategy.OnPush
和RxJS Subject
debounceTime
使用model2
进行奇怪的设置。
在this Plunker中,我对以下行为感到惊讶:
第二个重置按钮认为不起作用,因为我没有立即更新ngModelChange
监听器中Subject
的值,而是将更改事件传递给$output = aray_map( function ($item) {
$item[] = $sub[2] - $sub[1];
return $item;
}, $arr);
并对其进行去抖动,然后只有在10秒的去抖后才更新它。但是我很难过,为什么重置按钮在这样的更新飞行时不会起作用。发生了什么事?
答案 0 :(得分:3)
这实际上是因为this.model2
的值实际上并未从"Model 2"
更改,即使输入的值似乎已经明显改变。由于传递到ngModel
的值不会更改,因此不会覆盖输入的新值。这里的解决方案是使用当前值维护变量model2:
handleChange2(value: string) {
this.model2 = value;
this.model2Subject.next(value);
}