如何在父控制器Angular JS中访问角度组件事件

时间:2016-07-27 19:49:28

标签: angularjs

如何在父控制器Angular JS中访问角度组件事件,

我有一个带按钮点击事件的角度组件

是否可以在父控制器中访问/实现这些事件?

1 个答案:

答案 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;
&#13;
&#13;