2015-12-03 7 views
0

Я использую $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 Insted из его defaultService. Но это не сработает. Как я могу решить эту проблему?

ответ

0

использует правильное имя для инъекций:

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

Но что вы делаете, кажется, скорее хак, чем все остальное имхо.

+0

Извините, здесь я сделал ошибку. Я использую правильное имя, но оно не работает :( –