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,而binding屬性必須始終爲camelcase likeThis

+0

西蒙,你今晚是男人!再次感謝。 – Shawn