我正在编写一个使用自定义ngModel的自定义angular2组件。
我面临的问题是,输入将在另一个绑定之后进行绑定,比如“@ ngModel”。例如,在相同的方法中,我更改了ngModel的值和@input的值。在子组件中,我需要处理ngOnChanges是否发生了任何更改。但是看到@input的值已经改变了,但是ngModel的值仍然是旧的值(我需要在这里获得新值以进行一些验证)
这是关于plunker的演示:
## https://plnkr.co/edit/U6eSZ6GJB6HvHADLyEG2?p=preview ##
等待一些想法。谢谢。
发布于 2017-04-19 12:58:15
您可以将更改聚合到一个位置并在那里进行验证。为model和maximum创建两个主题,在那里推送更改,并结合可观察数据进行验证。
ngOnChanges(changes: SimpleChanges) {
alert("current model " + this.value + "--- current maxinum " + changes.maximum.currentValue);
this.maximum$.next(this.maximum);
}
//From ControlValueAccessor interface
writeValue(value: any) {
if (value !== this.innerValue) {
this.model$.next(value);
this.innerValue = value;
}
}
Observable.combineLatest(this.maximum$, this.model$).
subscribe(validateHere)
https://stackoverflow.com/questions/43486294
复制相似问题