大佬教程收集整理的这篇文章主要介绍了Angular4错误提示的说明(一),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
错误一:
Uncaught NetworkError: Failed to execute 'send' on 'XMLhttprequest': Failed to load 'ng:///DynamicTestModule/Manufactu rerListComponent.ngfactory.js'.
这个错误很可能是一个误导,你可能根本没有用到XMLhttprequest。添加测试命令的参数,可以发现真正的导致错误的原因。
ng test --sourcemaps=false 或者 npm test --sourcemaps=false 或者 yarn test --sourcemaps=false
此时错误变成了:
Error: ExpressionChangedAfterItHasBeencheckedError: Expression has changed after it was checked. PrevIoUs value: '0'. Current value: '12'.
这个错误名称有点长,ExpressionChangedAfterItHasBeencheckedError。这个错误会在开发模式下的测试时产生,开发模式要求数据模型是稳定的,如果在单个变化检测过程中发生了数据变化就会抛出这个异常。请看下面的代码:
<mat-paginator #paginator [length]="datasource.resultsLength" [pageIndex]="0" [pageSize]="5" [pageSizeOptions]="[5,10,25,100]"> </mat-paginator>
如果一开始datasource.resultsLength等于0,等到datasource从后端获取数据将这个值修改成12,就会抛出这个错误。从逻辑上来说,实际运行的系统就是这样,没有什么错误,在product模式下也不会出错。但是在dev模式下就会出错,所以在测试代码中一开始就将datasource.resultsLength设置成12,然后获取数据之后也是12,就可以消除这个错误。
class httpDatastoreservicestub { findAll(jsonapiObjectType: Manufacturer,page: Pagecursor | PageOffsetLimit | PagenumberSize,sort: SortPhrase[],filter: FilterPhrase[],params?: any): Observable<ListBody<ManufacturerAttributes,Manufacturer>> { let lb = MANUFACTURERS_BODY as ListBody<ManufacturerAttributes,Manufacturer>; console.log(pagE); if (isPageOffsetLimit(pagE)) { lb.data = lb.data.slice(page.offset,page.limit + page.offset); } return Observable.of(lb); } } @Injectable() class Manufacturerservicemock { constructor(private _datastore: httpDatastorE) { } getDatasource(): ManufacturerDatasource { let mfds = new ManufacturerDatasource(this._datastorE); mfds.resultsLength = 12; return mfds; } } let httpDatastoreservicestub = new httpDatastoreservicestub();
从测试的目的来说,也确实只需验证单个数据模型对应的视图即可。
以上是大佬教程为你收集整理的Angular4错误提示的说明(一)全部内容,希望文章能够帮你解决Angular4错误提示的说明(一)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。