1

フォームで奇妙なことが起こっているか、正しく行っていない可能性があります。コードを提示して説明させてください。

コンポーネント内にフォーム オブジェクトを定義しました

form = {};

各行にはボタンがあり、クリックするとモーダルウィンドウが開き、項目が引数として渡されます。

<a class="btn btn-warning" (click)="open(item)"><i class="glyphicon glyphicon-pencil"></i></a>

これはモーダル ウィンドウを起動して開くメソッドですが、アイテム オブジェクトを上記のフォーム オブジェクトに割り当てます。

open = (item: any) => {
    this.inventoryEditModal.open(); //Opens a modal window

    this.form = item; // the assignment 
}

item オブジェクトは、次のように出力することでビューで使用できます。

{{ form | json }} // i can see all item properties

モーダル ウィンドウにはユーザーが項目を編集するフォームが含まれているため、基本的に入力フォーム フィールドには項目のプロパティ値が入力されますが、何らかの理由で 3 番目のレベルが定義されておらず、その理由がわかりません。スクリーンショットをお見せしましょう。 2番目のレベル

<input type="text" class="form-control" [(ngModel)]="form.alarmSystem" name="wireless">

ここに画像の説明を入力

3 番目のレベルは未定義になります。

<input type="text" class="form-control" [(ngModel)]="form.alarmSystem.wireless" name="wireless">

ここに画像の説明を入力

この問題は、第 3 レベルの「object.object.property」でのみ発生しています。入力フィールドを 1 つだけ表示していますが、フォームには 8 つ以上のフィールドが含まれており、すべて同じ問題があります。

ここで何が欠けているのかわかりませんが、論理的にはうまくいくはずです。この問題があちこちで起こっているのを見たことがありますか、それともあなた自身を経験しましたか?

前もって感謝します。

4

2 に答える 2

2

それがあなたのケースに役立つかどうかはわかりませんが、私は非常に似た状況にありました。

私を助けたのは、「安全なナビゲーションオペレーター」を使用することでした。

あなたがする必要があるのは、?を追加するだけだと思います。フォームの後:

<input type="text" class="form-control" [(ngModel)]="form?.alarmSystem.wireless" name="wireless">

ドキュメントはここにあります: https://angular.io/docs/ts/latest/guide/template-syntax.html#!#safe-navigation-operator

于 2016-10-05T04:45:45.853 に答える