0

子コンポーネントに双方向バインディングを実装する際に問題があります。だから私の目標は、配列に新しいオブジェクトが追加/削除されると、親コンポーネントの配列もその変更を反映するためです。より詳細なコードをいくつか示します。角度1.5のコンポーネントの親に配列をバインドする

親コンポーネントコントローラ:

export class ParentController { 
    selectedItems = []; 
} 

親コンポーネントHTML:

<list-selector selectedItems="$ctrl.selectedItems"></list-selector> 

子成分:

export var listSelectorComponent: IComponentOptions = { 
    bindings: { 
     selectedItems: "=" 
    }, 
    controller: childController 
}; 

子コントローラ:

export class listSelectorController { 

    selectedItems = []; 

    addToSelectedItems(){ 
     this.selectedItems.push({name:'First Item'}); 
    } 
} 

これは私が得ているエラーです。私はそれがバインディングと関係があると確信していますが、何が間違っているのかは分かりません。アドバイスをいただければ幸いです!

Error: [$compile:nonassign] Expression 'undefined' in attribute 'selectedItems' used with directive 'listSelector' is non-assignable! 

答えて

2

あなたの問題は確かに拘束力があります。 ちょうどにあなたの親コンポーネントのHTMLを変更します。

<list-selector selected-items="$ctrl.selectedItems"></list-selector> 

そして、あなたが行ってもいいです。 htmlタグの属性はlike-thisである必要があり、バインディングのプロパティは常にキャメラケースlikeThisでなければならないことに注意してください。

+0

あなたは今夜の男です!再度、感謝します。 – Shawn

関連する問題