angular $ controller locals substitue

时间:2015-12-03 15:57:48

标签: angularjs angular-services angular-controller

我正在使用$controller服务来继承控制器。

我有类似的东西

angular.module('myModule', ['someModule'])
   .controller('parentController', parentController)
   .controller('childController', childController);

parentController.$inject = [ '$scope', 'someModule.defaultService'];
childController.$inject = [ '$scope', 'someModule.myService'];

function parentController($scope, defaultService) {
        $scope.value = defaultService.someMethod();
}

function childController($scope, myService) {
        var viewModel = this;
        var ctrl = $controller('parentController', {
            $scope: $scope, defaultService:myService
        });
        angular.extend(viewModel, ctrl);
}

我希望parentController使用myService对其进行defaultService。但它不起作用。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

使用正确的注射名称:

var ctrl = $controller('parentController', {
        $scope: $scope, **defaultService**:myService
});

但是你所做的事情似乎比任何其他东西都更糟糕。