Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了angular2 form async validation ChangeDetectionStrategy.OnPush =没有视图刷新?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
[angular2 RC4 @ angular / forms module]

我有一个使用包含FormGroup的OnPush更改检测的组件.
此表单包含一个带有异步验证器的FormControl.

验证完成后(不再有待处理),视图不会刷新.
只有输入模糊事件才能刷新视图.

如果我删除OnPush更改检测,它可以正常工作.

This plunker demonstrates it.

这是一个有角度的错误还是我做错了什么?

解决方法

看起来你错过了使用ChangeDetectionStrategy.onPush的目标.

您没有任何@Input属性或|组件上的异步管道,但它只是用这个策略更新视图状态 – 当Input属性更新时(理想情况下是一个新对象).所以只是摆脱当前的情况

updatE

如果在这种情况下仍然坚持使用OnPush,对于预期的行为,您应该手动触发更改检测.

从’@ angular / core’添加import {…,ChangeDetectorRef};并在构造函数中注入它的实例.

在您的方法中,您必须添加

uniquenameAsync(control: FormControl): Promise<{[key: String]:any}>{
   return new Promise(resolve => {
       setTimeout(() =>{
            resolve(null);
            this.changeRef.markForcheck();
      },500);
   });
 }

大佬总结

以上是大佬教程为你收集整理的angular2 form async validation ChangeDetectionStrategy.OnPush =没有视图刷新?全部内容,希望文章能够帮你解决angular2 form async validation ChangeDetectionStrategy.OnPush =没有视图刷新?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。