我必須使用由兩種不同的服務提供的數據組件的兩個列表:ngFor依賴於另一個ngFor完成渲染 - 讓ExpressionChangedAfterItHasBeenCheckedError [角2]
- 第一列表包含隨機高度一些組件(我在渲染之前不知道它們的高度)
- 第二個列表中的組件必須根據第一個列表中的組件的高度計算它們的高度。
這兩個列表都是由同一個組件使用兩個* ngFor循環生成的,而服務數據是從另一個子組件生成的。
問題是,當模型數據發生變化時,兩個ngFor循環嘗試更新模板,但第二個失敗,因爲它依賴於尚未準備好的第一個ngFor。我嘗試使用ChangeDetectorRef.detectChanges()或偵聽包含第一個列表組件的QueryList發出的更改,但我仍然收到ExpressionChangedAfterItHasBeenCheckedError。
真正的情況是比較複雜一點,但這裏的代碼是什麼樣子的簡化版本:提前
https://embed.plnkr.co/sr9k0wLQtyWSATiZuqaK/
謝謝,這是我的計算器:)
你會發現(HTTPS這篇文章有用[你需要了解的'ExpressionChangedAfterItHasBeenCheckedError'錯誤一切]://博客。 angularindepth.com/everything-you-need-to-know-about-the-expressionchangedafterithasbeencheckederror-error-e3fd9ce7dbb4) –