0
私はループのウィット*ngFor
の配列を持っています。値が0以下かどうかを確認したいので、checkPositive関数を作成しました。Error:ExpressionChangedAfterItHasBeenCheckedError - Angular
<div class="col-xs-4" [ngStyle]="{'color':color}">
<span>{{checkPositive(contract.transactionAmount) | number: '1.2-2'}} {{contract.contractCurrency}}</span>
</div>
をTsは私が得る結果は、最初の数字は何色が設定されていないということです
checkPositive(amount){
if(amount > 0){
this.color="blue";
return amount;
}
else{
this.color="red";
return amount;
}
}
ファイル:ここではHTMLコードです。
とコンソールが
Error: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'undefined'. Current value: 'blue'.
を返し、私は問題が何であるかを理解し、私はちょうどそれを解決する方法がわかりません。
あなたはplunkerで再生を提供することはできますか? – yurzui
データをループするので実際には複雑ですが、すべてがここにあります –
ここでの主な問題は、ngStyleバインディングが適用され、checkPositiveメソッドの内部に副作用があるとcheckPositiveメソッドが実行されることです。 https://angular.io/guide/template-syntax#no-visible-side-effects – yurzui