子コンポーネントのデータ変更を親コンポーネントに自動的に送信する

ガナパティバシムセッティ

私にはBusinessComponent(親)とAddressComponent(子供)がいます。現在、内ではAddressComponent、双方向のデータバインディングが正常に機能しています。今、私はの変更必要AddressComponentに放出されるBusinessComponentようAddressオブジェクトではなく、個々のプロパティAddressのオブジェクトを。私は使ってみましたngOnChanges()が、ドキュメントにはこれ書かれています。

Angularは、inputプロパティの値が変更された場合にのみフックを呼び出します。ヒーロープロパティの値は、ヒーローオブジェクトへの参照です。Angularは、ヒーロー自身の名前プロパティが変更されたことを気にしません。ヒーローオブジェクトの参照は変更されていないため、Angularの観点からは、レポートする変更はありません。

そして、データを発行せずに、親はの変化を検出していますAddressComponent私はこれを達成する方法を見つけることができませんでした。

これが私のコードサンプルです。

AddressComponent

import { Component,  EventEmitter, Input, OnInit, Output, OnChanges, SimpleChanges } from '@angular/core';
import { AppService } from '../services';
import { Address } from '../types';

@Component({
  selector: 'app-address',
  templateUrl: 'address.component.html'
})

export class AddressComponent implements OnInit, OnChanges {

    @Input()
    address: Address;

    @Output()
    addressChange: EventEmitter<Address> = new EventEmitter<Address>();

    constructor(
        private appService: AppService
    ) { super(appService); }

  ngOnInit() {
        this.address = new Address('');
  }
    ngOnChanges(changes: SimpleChanges) {
        // This is not being called for emitting the changes.
        console.log(changes);
        this.addressChange.emit(this.address);
    }
}

AddressComponentテンプレート

<div class="form-row">
     <label class="form-label" for="houseNo">{{ labels['houseNo'] }}</label>
    {{ address.houseNo }}
    <input [(ngModel)] = "address.houseNo" type="text" name="houseNo" id="houseNo" ref-houseNo>
</div>

<div class="form-row">
     <label class="form-label"  for="street">{{ labels['street'] }}</label>
    <input [(ngModel)] = "address.street" type="text" name="street" id="street" ref-street>
</div>

<div class="form-row">
     <label class="form-label"  for="village">{{ labels['village'] }}</label>
    <input [(ngModel)] = "address.village" type="text" name="village" id="village" ref-village>
</div>

<div class="form-row">
     <label class="form-label"  for="city">{{ labels['city'] }}</label>
    <input [(ngModel)] = "address.city" type="text" name="city" id="city" ref-city>
</div>

そして、私はこのように入力をバインドします BusinessComponet

<app-address [(address)]="address"></app-address>

これを達成する方法は?

AJT82

コメントで述べたように、双方向バインディングまたはは必要ありません@OutputJSオブジェクトは変更可能であるため、参照は同じオブジェクトであることを意味しますが、

ngOnInit() {
  this.address = new Address('');
}

子では、Address(クラスだと思いますが)いくつかのプロパティがあるため、初期化についても理解できませんしかし、同じ参照が必要な場合は、そうすべきではありません。

Address次のようなインターフェースを使用することをお勧めします

export interface Address {
  houseNo: number;
  street: string;
  village: string;
  city: string;
}

また、次のようにオブジェクトを入力できます。

address: Address = {}

親で、またはそれに初期値を設定しますが、子にクリーンなオブジェクトが必要なようです。

だから、子供から以下を削除し、OnInitあなたは行ってもいいはずです:)

this.address = new Address('');

デモ

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

React-子コンポーネントの変更後に親コンポーネントのデータを更新します

分類Dev

親から子コンポーネントにデータを送信するためのangularの@inputとviewchild

分類Dev

親コンポーネントの変数を子コンポーネントから変更する方法

分類Dev

Vue.jsで親から子のコンポーネントにデータを送信する方法

分類Dev

Reactでコンポーネントの子を動的に変更する

分類Dev

親コンポーネントから子コンポーネントに小道具を2回送信する

分類Dev

子コンポーネントから親に値を送信する方法(機能コンポーネント)

分類Dev

フォームが子コンポーネントにある場合、親コンポーネントの送信ボタンを無効/有効にする

分類Dev

角度5で* ngForを使用せずに親コンポーネントから子コンポーネントにデータを送信する方法

分類Dev

Angular 9:子コンポーネントを破棄した後に親コンポーネントにデータを送信する

分類Dev

子コンポーネントボタンの画像を変更し、親コンポーネントから移動する方法

分類Dev

親コンポーネントの子データにアクセスする

分類Dev

親コンポーネントのボタンクリック時に子コンポーネントの@input値を変更する方法(子コンポーネントは* ngforループ内にあります)

分類Dev

変数の値を子コンポーネントから親コンポーネントに送信するにはどうすればよいですか?

分類Dev

子コンポーネントの動的コンポーネントの場合、子から親にデータを渡す方法

分類Dev

AngularJsで親コンポーネントから子コンポーネントにデータを送信する方法

分類Dev

reactjsで子コンポーネントから親コンポーネントにデータを送信する方法

分類Dev

子コンポーネントの動作を変更するホストコンポーネント

分類Dev

Vue.jsは親コンポーネントと子コンポーネントの間でデータを動的にマッピングします

分類Dev

親コンポーネントの下に子コンポーネントをロードする方法

分類Dev

子の状態変更時に親コンポーネントの更新をトリガーする

分類Dev

子コンポーネントの親コンポーネントのnavigationOptionsを変更するにはどうすればよいですか?

分類Dev

VueJS:子コンポーネント内のデータを変更し、親のデータを更新します。

分類Dev

親コンポーネントの角度4のコンポーネントを動的にロードする方法

分類Dev

親コンポーネントの値の変更時に、子コンポーネントの値を更新する

分類Dev

親コンポーネントの状態を子コンポーネントから変更するにはどうすればよいですか?

分類Dev

子コンポーネントから親コンポーネントに含まれる別の子コンポーネントに状態を渡す

分類Dev

Vue.jsで親から子コンポーネントを動的に変更する方法

分類Dev

子コンポーネントにアイテムのリストがある場合、Quasar / Vueで子コンポーネントから親コンポーネントへのデータ変更のトリガー/更新

Related 関連記事

  1. 1

    React-子コンポーネントの変更後に親コンポーネントのデータを更新します

  2. 2

    親から子コンポーネントにデータを送信するためのangularの@inputとviewchild

  3. 3

    親コンポーネントの変数を子コンポーネントから変更する方法

  4. 4

    Vue.jsで親から子のコンポーネントにデータを送信する方法

  5. 5

    Reactでコンポーネントの子を動的に変更する

  6. 6

    親コンポーネントから子コンポーネントに小道具を2回送信する

  7. 7

    子コンポーネントから親に値を送信する方法(機能コンポーネント)

  8. 8

    フォームが子コンポーネントにある場合、親コンポーネントの送信ボタンを無効/有効にする

  9. 9

    角度5で* ngForを使用せずに親コンポーネントから子コンポーネントにデータを送信する方法

  10. 10

    Angular 9:子コンポーネントを破棄した後に親コンポーネントにデータを送信する

  11. 11

    子コンポーネントボタンの画像を変更し、親コンポーネントから移動する方法

  12. 12

    親コンポーネントの子データにアクセスする

  13. 13

    親コンポーネントのボタンクリック時に子コンポーネントの@input値を変更する方法(子コンポーネントは* ngforループ内にあります)

  14. 14

    変数の値を子コンポーネントから親コンポーネントに送信するにはどうすればよいですか?

  15. 15

    子コンポーネントの動的コンポーネントの場合、子から親にデータを渡す方法

  16. 16

    AngularJsで親コンポーネントから子コンポーネントにデータを送信する方法

  17. 17

    reactjsで子コンポーネントから親コンポーネントにデータを送信する方法

  18. 18

    子コンポーネントの動作を変更するホストコンポーネント

  19. 19

    Vue.jsは親コンポーネントと子コンポーネントの間でデータを動的にマッピングします

  20. 20

    親コンポーネントの下に子コンポーネントをロードする方法

  21. 21

    子の状態変更時に親コンポーネントの更新をトリガーする

  22. 22

    子コンポーネントの親コンポーネントのnavigationOptionsを変更するにはどうすればよいですか?

  23. 23

    VueJS:子コンポーネント内のデータを変更し、親のデータを更新します。

  24. 24

    親コンポーネントの角度4のコンポーネントを動的にロードする方法

  25. 25

    親コンポーネントの値の変更時に、子コンポーネントの値を更新する

  26. 26

    親コンポーネントの状態を子コンポーネントから変更するにはどうすればよいですか?

  27. 27

    子コンポーネントから親コンポーネントに含まれる別の子コンポーネントに状態を渡す

  28. 28

    Vue.jsで親から子コンポーネントを動的に変更する方法

  29. 29

    子コンポーネントにアイテムのリストがある場合、Quasar / Vueで子コンポーネントから親コンポーネントへのデータ変更のトリガー/更新

ホットタグ

アーカイブ