MgS*_*Sam 9 angular angular-reactive-forms
Angular FormControl有一个valueChangesObservable指出:
每当控件的值更改时,都会在UI中或以编程方式发出事件。
有没有一种方法可以将FormControl设置为忽略程序化值更改?(基本上等效OneWayToSource于.NET中的绑定)
具体来说,我面临的问题是我的valueChanges订阅,我正在更新一堆绑定到一堆其他控件的值,然后valueChanges也会触发所有这些控件,这在它们执行操作时会出现问题他们的valueChanges处理程序与用户实际触摸的控件冲突。
您可以通过将选项传递{ emitEvent: false }给setValue调用来跳过发出valueChange事件。
setValue(value: any, options: {
onlySelf?: boolean;
emitEvent?: boolean;
emitModelToViewChange?: boolean;
emitViewToModelChange?: boolean;
} = {}): void
Run Code Online (Sandbox Code Playgroud)
另外,您可能想看看其他选项。
如果onlySelf为true,则此更改将仅影响此FormControl的验证,而不影响其父组件。默认为false。
如果emitEvent为true,则此更改将导致在FormControl上发出valueChanges事件。默认为true(因为它属于updateValueAndValidity)。
如果emitModelToViewChange为true,则将通过onChange事件将新值通知给视图。如果未指定emitModelToViewChange,则这是默认行为。
如果emitViewToModelChange为true,则将触发ngModelChange事件以更新模型。如果未指定emitViewToModelChange,则这是默认行为。
| 归档时间: |
|
| 查看次数: |
2285 次 |
| 最近记录: |