次の入力プロパティを持つコンポーネントがあります。住所インサイド address: Address;
@ Inputから来るとき、ngModelをプロパティに割り当てることは未定義です
は私がstateCode
である、にバインドするプロパティがあります:あり
@Input() addressAssociation: AccountAssociation;
。私のテンプレートで
私はこれを持っている:
<div class="fcol-md-4 fcol-xs-12 form-group" *ngIf="!zipCodeValidating && addressAssociation.address">
<label for="{{name}}State" class="uk-label">State/U.S Territory</label>
<select [(ngModel)]="addressAssociation.address.stateCode"
[disabled]="isListedZipCode"
#addState="ngModel"
required>
<option [ngValue]="state.abbreviation" *ngFor="let state of states">{{state.fullName}} ({{state.abbreviation}})</option>
</select>
</div>
<div class="text--error" *ngIf="addState.errors && addState.touched">
<span *ngIf="addState.errors.required">State is required.</span>
</div>
問題は、テンプレートの負荷が、それは常にというエラースローした場合:Cannot read property errors of undefined
を。
また、{{addState | json}}
で変数を印刷しようとしましたが、循環参照エラーがスローされます。また、単にaddStateを印刷しようとしましたが、無効状態から外に出てその値を変更しても変更されませんでした。
これは明らかに変数#addState
には、これを解決するためのアイデアがngModel
で設定されていません。
を使用しなければならない変数が定義される前に、あなたのテンプレートがロード可能性があります。 1つのアプローチは、セーフナビゲーションオペレータ(?)を使用することです。 addressAssociation?.address?.stateCode –
@RobZuber問題はそのコード部分ではなく、 'errors'です。それを修正するには 'addState?.errors'、さらには' addState?.invalid'とエラーをチェックすることです: 'addState?.hasError( 'required')'。 – developer033
私はすでにそれを試みましたが、addStateの値は決して変更されないため、セーブナビゲーション演算子はこれに適合しません。 – Kurtz