2017-11-14 7 views
0

に取り組んでいません。Angular2:ngClassこれは私のコードでページのロード

constructor(private service: MyService) {  
    this.customer = service.getData();  
    console.log(this.customer.address.postalAddress.streetAddress.length);     
    } 


<input required [(ngModel)]="customer.address.postalAddress.streetAddress" 
     [ngClass]="{'ng-dirty': customer.address.postalAddress.streetAddress.length > 0}"> 

コンソールブラウザ内では、CSSクラスが適用されていない、まだ数えアドレス長の数である15を記録します。

Cssは、目的のリセット顧客オブジェクトと再び データをセットしたときにのみ適用され、ページの読み込みが機能しません。

+0

全体的には普通に見えますが、問題を再現するためのプランを作成してください – smnbbrv

答えて

2

おそらくリゾルバまたは変更検出が必要です。または両方が好ましい。

お客様のデータをにロードする前にページが初期化され、顧客オブジェクトをリセットするまで再確認されません。 Resolveを使用すると、ルートとコンポーネントをアクティブ化してその問題を解決する前にデータを取得できます。

https://angular.io/guide/router#resolve-pre-fetching-component-data - ここでは、リゾルバの使用方法に関する公式ガイドです。

https://blog.thoughtram.io/angular/2016/02/22/angular-2-change-detection-explained.html - 変更検出の読み取りと使用をお勧めします。このような問題を特定して排除するのに役立ちます。

関連する問題