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