我正在使用angular 1.5组件,并且需要在子组件中的$ emit时调用父控制器中的函数.我们怎么做到这一点?
例:
(function (angular) {
'use strict';
controllerName.$inject = [];
function controllerName() {
var _this = this;
function toBeCalledOnEmit() {//some code}
var vm = {
toBeCalledOnEmit: toBeCalledOnEmit
}
angular.extend(_this, vm);
}
angular.module('moduleName', [
]).component('parentComponenet', {
templateUrl: 'templateUrl',
controller: 'controllerName'
}).controller('controllerName', controllerName);
})(angular);
Run Code Online (Sandbox Code Playgroud)
子组件:
(function (angular) {
'use strict';
childController.$inject = [];
function childController() {
//needs $emit here
}
angular.module('childModuleName', [
]).component('childComponent', {
templateUrl: 'templateUrl',
controller: 'childController'
}).controller('childController', childController);
})(angular);
Run Code Online (Sandbox Code Playgroud) 根据下图:

我想改进组件通信方法....我认为这种方式效率不高.
单击tabsetComponent以发出事件时,父控制器会捕获此事件,从而更改rootScope变量.在tableComponent中使用$ watch rootScope变量来触发http获取数据函数...
谁能有更好,更有效的方式来沟通兄弟组件?