Angular ngOnChanges后的自定义ngmodel绑定

Angular ngOnChanges后的自定义ngmodel绑定,angular,angular2-directives,Angular,Angular2 Directives,我正在编写一个自定义angular2组件,它使用自定义ngModel 我面临的问题是ngModel将在另一个绑定之后绑定,比如“@input”。例如,在相同的方法中,我更改ngModel的值和@input的值。在子组件内部,我需要处理ngOnChanges是否发生任何更改。但是@input的值已经改变了,但是ngModel的值仍然是旧值(我需要在这里获得新值以进行验证) 以下是plunker的演示: ## https://plnkr.co/edit/U6eSZ6GJB6HvHADLyEG2?p=

我正在编写一个自定义angular2组件,它使用自定义ngModel

我面临的问题是ngModel将在另一个绑定之后绑定,比如“@input”。例如,在相同的方法中,我更改ngModel的值和@input的值。在子组件内部,我需要处理ngOnChanges是否发生任何更改。但是@input的值已经改变了,但是ngModel的值仍然是旧值(我需要在这里获得新值以进行验证)

以下是plunker的演示:

## https://plnkr.co/edit/U6eSZ6GJB6HvHADLyEG2?p=preview ##
等待一些想法。
谢谢。

您可以在一个地方汇总更改并在那里进行验证。 为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)

请设置正确的链接,并在问题中添加代码的相关部分。这就是它的工作原理。你在尝试什么?你的解释不清楚。@Aravind,对不起,我的英语不好。其思想类似于:父组件有两个属性“value和maxinum(用于“ngmodel”的值和用于“@Input”的maxinum)”,并将它们传递给子组件。在此之后,父组件将更改为将它们传递给子组件。具有两个属性的子组件:value和maxinum。我使用ngOnChange检测子组件内部的更改。但ngOnChange只检测到maxinum(@maxinum)已更改,该值(对于Ngmodel)仍然是旧的。请看一下plunker链接的内部。@surai…很抱歉给您带来不便。我第一次在stackoverflow.com上发帖的时候,问题还是一样。从父组件中,我用相同的方法更改“最大值”和“值”。所以角度处理的流程是:-首先调用ngOnchanges,然后调用“validateHere”方法(基于代码)-其次调用writeValue,然后再次调用“validateHere”方法(基于代码)=>这里的问题是:调用ngOnchanges时,值仍然旧(在调用writeValue方法之前尚未更新)。因此validateHere方法将在更新值不足的情况下运行。