当先前值与当前值相同时,如何为@Input 值运行更改检测(更新模板)?
演示:https ://plnkr.co/edit/Rvz2ElLjM20R3nC6ZQWt?p=preview
我正在使用ngrx
.
用例:如果输入值为空,我想在模糊事件之后为输入设置默认值。
输入:
<input
id="format"
class="form-control"
type="text"
[value]="inputValue"
(keyup)="keyup$.next($event.target.value)"
(blur)="blur$.next($event.target.value)"
>
[value]="inputValue"
-@Input
哑组件的值,取自store -> format
。我以store
这种方式从中获取价值:
//main component
//template
template: `<format-input [inputValue]="format$ | async" (outputValue)="updateFormat($event)"></format-input>`
this.format$ = this.store.let(getFormat());
//form-reduser.ts
export function getFormat () {
return (state$: Observable<GeneratorFormState>) => state$
.map(s => s.format);
}
两者兼而有之。keyup
_blur
updateFormat
我的问题是,如果插入的值与之前的值相同,则事件后的blur
事件[value]="inputValue"
不会更新。store
store
例如:
1)存储值:22 =>输入值:22 =>清除(剪切)输入值=>模糊事件=>输入为空,将默认值(1)设置为存储=>存储值:1 =>输入值: 1
2)存储值:1 =>输入值:1 =>清除(剪切)输入值=>模糊事件=>输入为空,将默认值(1)设置为存储=>存储值:1 =>输入值: '' (空的)
那么,我该如何解决这个问题?