単一のプロパティではなく、新しいオブジェクトをAngularフォームにバインドします

ギグルズ氏

私は非常にシンプルなインターフェースを持っています:

(models.ts)

export interface User{
Id : number;
FirstName : string;
LastName : string;
Email: string;
PhoneNumber: string;
}

そして非常に単純な形式:

(app.component.html)

 <fieldset class='form-group' >
  <h2>Create New User</h2>
  <label>First Name: <input type="text" [(ngModel)]='FirstName'></label><br>
  <label>Last Name: <input type="text" [(ngModel)]='LastName'></label><br>
  <label>Phone number: <input type="phone"[(ngModel)]='PhoneNumber'></label><br>
  <label>Email Address: <input type="email" [(ngModel)]='Email'></label><br>
<button (click)="createNewUser()">Create User</button>
</fieldset>

ここで、データを単純な文字列に2方向にバインドし、これらの文字列に基づいてオブジェクトを作成します。これは機能しますが、少し面倒に感じます。空のオブジェクトを新しくして、次のようにオブジェクトに直接割り当てることができるかどうか疑問に思いました。

(app.component.ts)

 userToCreate: User;

(app.component.html)

    <label>First Name: <input type="text" [(ngModel)]='userToCreate.FirstName'></label><br>

これを行おうとすると、TypeScriptはそれを示すエラーをスローします

未定義のプロパティ 'FirstName'を読み取ることができません

私は何を間違っているのですか、それともこれは不可能ですか?

インゴビュルク

問題があるということuserToCreateですundefinedので、あなたが結合されているプロパティのどれを持っていません。

コンポーネントの個々のプロパティにバインドしてから、createNewUser関数でユーザーオブジェクトをアセンブルする必要がありますまたはuserToCreate、少なくとも空のオブジェクトで初期化する必要があります。

userToCreate: User = {} as User;

型アサーション(キャストとも呼ばれます)が必要なの{}は、Userインターフェイスが必要とするプロパティを実際には定義していないためです(これらはいずれもオプションではないため)。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

オブジェクトタイプの「オーバーライド」プロパティを新しいタイプにフローします

分類Dev

テンプレートが静的バインディングであるにもかかわらず、古いコードのオブジェクトファイルがジェネリックプログラミングパラダイムを使用する新しいコードを使用できるのはなぜですか?

分類Dev

参照ではなく値で新しいオブジェクトのオブジェクト関数とプロパティをコピーします-javascript

分類Dev

ランタイムコードなしでオブジェクトタイプに新しいプロパティを追加する

分類Dev

Angular @Input、オブジェクトを同じオブジェクトにバインドしますが、プロパティ名は異なります

分類Dev

Rstuidoで新しいプロジェクトを作成すると、グローバルオプションで指定されたディレクトリではなく、〜/このPC /ドキュメントフォルダに配置されます。

分類Dev

MVC 4は、新しいオブジェクトのプロパティとしてリストを使用してフォームを作成します

分類Dev

valueChangesから選択したオブジェクトを取得する方法ですが、Angularリアクティブフォームを使用してオブジェクトIDのみをフォームにバインドしますか?

分類Dev

WTForms:オブジェクトの各フィールドを個別にバインドしています。オブジェクトをフォームに一度にバインドする方法はありますか?

分類Dev

Angular-オブジェクトの新しいプロパティにプロパティを作成します

分類Dev

角度ブートストラップtypeaheadは、単一のフィールドではなくオブジェクトにng-modelを設定します

分類Dev

オブジェクトプロパティをUserControlDPエラーにバインドしています

分類Dev

オブジェクトプロパティをUserControlDPエラーにバインドしています

分類Dev

新しいアイテムのプロパティである新しいリストにオブジェクトをリストします

分類Dev

プロパティを持つオブジェクトではなく、定義されたエイリアスを持つ単一の値として属性を返すモデルインクルードオプション

分類Dev

Vueストアはオブジェクト全体ではなく単一のプロパティをディスパッチします

分類Dev

Webフォームでオブジェクトプロパティがnullではなくゼロを返す

分類Dev

ES6のプロパティの省略形を使用してオブジェクトをtypescriptで渡し、引数の前にインターフェイス名を付けないようにする簡単な方法は?

分類Dev

Swagger UIは、単一のアクションパラメータにバインドされた複数のヘッダーを、複数のヘッダーとしてではなく、単一のjsonオブジェクトとして送信します。

分類Dev

変数を使用してオブジェクトプロパティにアクセスし、存在しない場合はデフォルトプロパティにフォールバックします

分類Dev

javascript es2018でオーバーライドする代わりに、オブジェクトをマージしてそれらのintプロパティを合計する簡単な方法はありますか?

分類Dev

プロパティjavascriptではなく、あるオブジェクトの値のみを別のオブジェクトにコピーします

分類Dev

vue.jsv-modelはjsonオブジェクトのサブプロパティにバインドします

分類Dev

$ watchは、Angularの新しいアイテムのオブジェクトの配列でプロパティの変更を見つけられません

分類Dev

JSON.parse()は、JSONエンドポイントでオブジェクトプロパティを実際に定義しなくても、どのようにしてJSオブジェクトに解析できますか?

分類Dev

計算されたオブジェクト内のオブジェクトプロパティを取得すると、オブジェクト自体ではなく未定義になるのはなぜですか?このコンテキストでは、どちらのアプローチが適していますか?

分類Dev

C#MongoDBドライバーを使用して、ネストされたオブジェクトのプロパティを等しくすることができない、強く型付けされたフィルターを作成するにはどうすればよいですか?

分類Dev

マングースはオブジェクトを作成する必要がありますが、別のオブジェクトにすでにこのプロパティがある場合は、プロパティをスキップしてください

分類Dev

Laravel 7-非オブジェクトのプロパティ 'task_name'を取得しようとしています-さまざまな入力とマルチイメージのアップロードを含むフォーム

Related 関連記事

  1. 1

    オブジェクトタイプの「オーバーライド」プロパティを新しいタイプにフローします

  2. 2

    テンプレートが静的バインディングであるにもかかわらず、古いコードのオブジェクトファイルがジェネリックプログラミングパラダイムを使用する新しいコードを使用できるのはなぜですか?

  3. 3

    参照ではなく値で新しいオブジェクトのオブジェクト関数とプロパティをコピーします-javascript

  4. 4

    ランタイムコードなしでオブジェクトタイプに新しいプロパティを追加する

  5. 5

    Angular @Input、オブジェクトを同じオブジェクトにバインドしますが、プロパティ名は異なります

  6. 6

    Rstuidoで新しいプロジェクトを作成すると、グローバルオプションで指定されたディレクトリではなく、〜/このPC /ドキュメントフォルダに配置されます。

  7. 7

    MVC 4は、新しいオブジェクトのプロパティとしてリストを使用してフォームを作成します

  8. 8

    valueChangesから選択したオブジェクトを取得する方法ですが、Angularリアクティブフォームを使用してオブジェクトIDのみをフォームにバインドしますか?

  9. 9

    WTForms:オブジェクトの各フィールドを個別にバインドしています。オブジェクトをフォームに一度にバインドする方法はありますか?

  10. 10

    Angular-オブジェクトの新しいプロパティにプロパティを作成します

  11. 11

    角度ブートストラップtypeaheadは、単一のフィールドではなくオブジェクトにng-modelを設定します

  12. 12

    オブジェクトプロパティをUserControlDPエラーにバインドしています

  13. 13

    オブジェクトプロパティをUserControlDPエラーにバインドしています

  14. 14

    新しいアイテムのプロパティである新しいリストにオブジェクトをリストします

  15. 15

    プロパティを持つオブジェクトではなく、定義されたエイリアスを持つ単一の値として属性を返すモデルインクルードオプション

  16. 16

    Vueストアはオブジェクト全体ではなく単一のプロパティをディスパッチします

  17. 17

    Webフォームでオブジェクトプロパティがnullではなくゼロを返す

  18. 18

    ES6のプロパティの省略形を使用してオブジェクトをtypescriptで渡し、引数の前にインターフェイス名を付けないようにする簡単な方法は?

  19. 19

    Swagger UIは、単一のアクションパラメータにバインドされた複数のヘッダーを、複数のヘッダーとしてではなく、単一のjsonオブジェクトとして送信します。

  20. 20

    変数を使用してオブジェクトプロパティにアクセスし、存在しない場合はデフォルトプロパティにフォールバックします

  21. 21

    javascript es2018でオーバーライドする代わりに、オブジェクトをマージしてそれらのintプロパティを合計する簡単な方法はありますか?

  22. 22

    プロパティjavascriptではなく、あるオブジェクトの値のみを別のオブジェクトにコピーします

  23. 23

    vue.jsv-modelはjsonオブジェクトのサブプロパティにバインドします

  24. 24

    $ watchは、Angularの新しいアイテムのオブジェクトの配列でプロパティの変更を見つけられません

  25. 25

    JSON.parse()は、JSONエンドポイントでオブジェクトプロパティを実際に定義しなくても、どのようにしてJSオブジェクトに解析できますか?

  26. 26

    計算されたオブジェクト内のオブジェクトプロパティを取得すると、オブジェクト自体ではなく未定義になるのはなぜですか?このコンテキストでは、どちらのアプローチが適していますか?

  27. 27

    C#MongoDBドライバーを使用して、ネストされたオブジェクトのプロパティを等しくすることができない、強く型付けされたフィルターを作成するにはどうすればよいですか?

  28. 28

    マングースはオブジェクトを作成する必要がありますが、別のオブジェクトにすでにこのプロパティがある場合は、プロパティをスキップしてください

  29. 29

    Laravel 7-非オブジェクトのプロパティ 'task_name'を取得しようとしています-さまざまな入力とマルチイメージのアップロードを含むフォーム

ホットタグ

アーカイブ