1

私はExpressionChangedAfterItHasBeenCheckedErrorgetter と 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.windowHeightBehaviorSubject です。通常のブラウザでこのコードを実行すると、すべてがうまくいきます。

コンポーネントで単体テストを実行しようとすると、問題が発生します。すべてのインポート、宣言、およびプロバイダーは問題なく、このような単純なテストでも問題ありません

  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。

ありがとう!

4

0 に答える 0