0

コードを確認するにはplnkrを参照してください。バインディングアイテムがオブジェクトであり、動的に変更されている場合、一方向バインディングは機能しません

AngularJSコンポーネントで本当に新しいです。私は正確に同じ結合を持つ2つの簡単なAngularJSコンポーネントを記述します。

bindings: { value:'@', field:'@', object: '<', callback: '&' } 

objectでコンポーネントにJavascriptオブジェクトを渡します。 fieldは、JSオブジェクトのプロパティの名前を指定します。最後に、valueは、JSオブジェクトのプロパティの新しい値を参照します。

object[field] = value 

成分(plnkrでonewaybindingfailコンポーネントを参照されたい)、一方向結合が機能しない場合、そのコントローラにobjectのクローンを作成しない場合。しかし、コンポーネントのコントローラにobjectをクローンすることで、すべての問題は解決します。

この動作が期待されていますか?はいの場合、なぜですか?または私は何かが欠けている?

ありがとうございました。

答えて

2

この動作が必要です。 "<"という片方向バインディングを指定すると、angleはコンポーネント側の変更を監視しませんが、コンポーネント側のオブジェクトを変更すると元のオブジェクトは変更されます。これは公式の角度の書類hereでも言及されています。

したがって、作業が必要な場合は、オブジェクトのコピーを作成することをお勧めします。親オブジェクトを変更するには、コールバック関数を使用することをお勧めします。これについては、公式の角度の書類でさらに詳しく説明されています。

関連する問題