2016-02-13 6 views
5

Angular 1.5の単方向データバインディング(<)のコンセプトコンセプトの導入により、しかし、マニュアルは言っている:親とコンポーネントスコープの両方が同じオブジェクトを参照することを、角度1.5で '一方向の結合'(<)を持つ点は何ですか?

注しかし、あなたがコンポーネントでオブジェクトのプロパティまたは配列要素を変更している場合、親はまだその変更が反映されます。したがって、一般的な規則は、コンポーネントスコープ内のオブジェクトまたは配列プロパティを決して変更しないことです。ディレクティブ/コンポーネントのスコープ内のオブジェクトのプロパティを変更

そして実際は、親スコープに反映されます - 一方向の結合のような音はありませんが、それだけで全体のことに混乱を追加する - 私たちは今、半1を抱えています-directionalバインディングです。オブジェクトや配列には使用しない方が良いですが、文字列には@があります。

片方向データバインディングを使用する実際のシナリオはどのような場合に便利ですか?それとも、一方向性のコンセプトは、それが一方向性であるという事実について悲鳴を上げるので、予期せぬ変化に対して自分自身を守るためには、完全に避けることをお勧めします。

+0

原始的ではなく、配列やオブジェクトでなければなりませんIあなたは答えを持っていますか? – ShaMoh

答えて

0

あなたはディレクティブに何らかの値を渡すために補間({{value}}式)を使用する必要があります@の場合:結合<の場合

<my-directive some-value="{{value}}"></my-directive> 

scope { 
    someValue: "@" 
} 

を、あなたは補間なしで属性値を設定します。 valueの値がundefinedないとき、それは孤立スコープで区切られますと:もちろん

<my-directive some-value="{{value}}"></my-directive> 

scope { 
    someValue: "<" 
} 

、someValueのは

+0

私は@と<の違いを理解していますが、それが真実ではない間に<とそれを真実ではないものと呼ぶのは何ですか?もしそうなら、<と=の違いはごくわずかです。 –

+3

真、 '<'と '='の違いはプリミティブ値バインディングのみです。 –

+0

しかし、それは人間の本質かもしれません - 双方向バインドはとてもワウで、今は片方向のものを返すことに不満を抱いています:) –

関連する問題