将数组绑定到 angular 1.5 组件的父级
Bind an array to the parent of an angular 1.5 component
我在对子组件实现双向绑定时遇到问题。所以我的目标是当一个数组获得一个新对象 added/removed 时,父组件上的数组也会反映出这种变化。这是一些更详细的代码。
父组件控制器:
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!
您的问题确实与您的绑定有关。
只需将您的父组件 html 更改为:
<list-selector selected-items="$ctrl.selectedItems"></list-selector>
你可以开始了。
请注意,html 标签属性必须是 like-this
,而绑定 属性 必须始终是驼峰式 likeThis
.
我在对子组件实现双向绑定时遇到问题。所以我的目标是当一个数组获得一个新对象 added/removed 时,父组件上的数组也会反映出这种变化。这是一些更详细的代码。
父组件控制器:
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!
您的问题确实与您的绑定有关。 只需将您的父组件 html 更改为:
<list-selector selected-items="$ctrl.selectedItems"></list-selector>
你可以开始了。
请注意,html 标签属性必须是 like-this
,而绑定 属性 必须始终是驼峰式 likeThis
.