如何在父控制器Angular JS中访问角度组件事件,
我有一个带按钮点击事件的角度组件
是否可以在父控制器中访问/实现这些事件?
答案 0 :(得分:4)
而不是访问子组件事件,更好的选择是使用绑定传递事件。真正的角度方式可能是使用"输出"具有回调函数的组件,该子组件可以在必要时调用。在这种情况下,您可以使用中间事件机制。实施方面,它看起来像这样:
angular.module('demo', [])
.component('parent', {
template: `
<div>
<child on-select="$ctrl.itemSelected(item)"></child>
</div>
`,
controller() {
this.itemSelected = function(item) {
alert(item.name)
}
}
})
.component('child', {
bindings: {
onSelect: '&'
},
template: `
<button ng-click="$ctrl.onSelect({item: {name: 'Thomas'}})">Select</button>
`
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js"></script>
<div ng-app="demo">
<parent></parent>
</div>
&#13;