私が理解しているように、コンポーネント内のInput
フィールドは一方向(親から子)であると考えられています。しかし、私はInput
に渡している値を持っていますが、それをコンポーネントで変更していますが、それも親の変更に気付いています。それはオブジェクトが参照として渡されるように私にはいくらか意味がありますが、私はそれを推測しているのは、「一方向バインディング」ということは、厳密ではなく単なるパラダイムであるということですか? Angularは片方のバインドを強制するためにフードの下で何もしませんか?コンポーネント入力に値が渡されました
基本的に、私がやっている:
<session-form [values]="session"></session-form>
をsession-form
コンポーネントでは、私は、モーメントオブジェクトにunixtimestampからsession.start
を変更します。しかし、私は親に気づき、session.start
もモーメントオブジェクトです。
このようなデータを使用するためのパラダイムはありますか?変数に入力値をコピーすると、それが設定されたコンポーネントに厳密にスコープされますか?
。私は '[value]'で片方向を使用しています。また、コンポーネントでFormGroupを使用していますが、フォーム外で使用するためにデータを変更する必要があります。 – RhoVisions
@RhoVisions私はあなたが '[value]'で入力を片方向に渡していることを知っていますが、あなたはそれがオブジェクトへの参照だと言っていて、子コンポーネント内の双方向バインディング親コンポーネントに反映されます。 'FormGroup'はそうしないようにします。フォーム外の子コンポーネント内に双方向バインディングが必要な場合は、自分で行う必要があります。たとえば、 'private prop1:string;という名前のコンポーネント内に変数を作成し、' ngOnInit'の内部でオブジェクトの値をその変数 'this.prop1 = myObj.prop1'に代入すると、2-way – msmolcic
をバインドできます@RhoVisions私は、あなたの子コンポーネントの中にある時点で '[(ngModel)]を使ってデータをフォームの外にバインドしていると仮定します。 :) – msmolcic