在子控制器中访问父控制器

时间:2017-02-09 20:54:40

标签: javascript angularjs

我正在尝试创建一个基本控制器,我可以使用所有其他控制器需要的功能。我想在我的下级控制器上继承或实例化JavaScript页面。

我在网上查看并看到了不同的建议,但它对我没有用。我在布局上按顺序放了2个脚本。我创建了一个基本控制器:

var app = angular.module('mainApp', []);

我试图在其他控制器中访问它:

    baseController.app
   .controller('listsController'.....

如何在listController文件中访问baseController(将来会有函数)?

1 个答案:

答案 0 :(得分:2)

一种方法是使用$controller服务将其实例化为this回答状态

app.controller('ChildCtrl', function($scope, $controller) {
  $controller('ParentCtrl', {$scope: $scope}); 
});

但正如你所说,你拥有所有其他控制器所需的功能,我建议你创建一个能够保存这些常用功能的服务。

这是一个服务示例:

app.factory('functionServ', function () {

    var function1 = function(){
        //Do your thing
    };

    var function2 = function(){
        //Do your thing
    };

    return {
        function1: function1,
        function2: function2
    }
});

然后将服务注入需要使用通用功能的控制器

app.controller('ChildCtrl', ['$scope', 'functionServ',  
    function ($scope, functionServ) {

    //Call the functions like: functionServ.function1();
}]);