【发布时间】:2016-09-14 11:29:43
【问题描述】:
我正在使用 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);
子组件:
(function (angular) {
'use strict';
childController.$inject = [];
function childController() {
//needs $emit here
}
angular.module('childModuleName', [
]).component('childComponent', {
templateUrl: 'templateUrl',
controller: 'childController'
}).controller('childController', childController);
})(angular);
【问题讨论】:
-
我在 1.5 之前使用过 $emit、$broadcast 和 $on,但是在 1.5 组件中我们没有使用 $scope 或 $rootscope。如何在没有 $scope 的情况下实现这一目标?在文档中,$emit 与 $scope 一起使用。
标签: angularjs angularjs-directive angularjs-scope