私はExpressionChangedAfterItHasBeenCheckedError
getter と BehaviorSubject を取得しています (楽しいですよね?)。
これがコンポーネントのコードです
private _windowHeight: string = '';
constructor( private stepService: StepService, private commonService: CommonService ) {
this.commonService.windowHeight.subscribe( ( height: number ) => {
this._windowHeight = height + 'px';
} );
}
@HostBinding( 'style.min-height' )
public get windowHeight(): string {
return this._windowHeight;
}
commonService.windowHeight
BehaviorSubject です。通常のブラウザでこのコードを実行すると、すべてがうまくいきます。
コンポーネントで単体テストを実行しようとすると、問題が発生します。すべてのインポート、宣言、およびプロバイダーは問題なく、このような単純なテストでも問題ありません
it( 'should create', () => {
expect( component ).toBeTruthy();
} );
それはスローしますError: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: '0px'. Current value: '865px'.
ここで何が問題になる可能性がありますか? 環境: Angular 4.0.2、Angular CLI、カルマ、ヘッドレス Chrome。
ありがとう!