201 votes

Un contrôleur AngularJS peut hériter a un autre contrôleur dans le même module ?

Dans un module, un contrôleur peut hériter des propriétés à partir d'un contrôleur de l'extérieur:

var app = angular.module('angularjs-starter', []);

var ParentCtrl = function ($scope, $location) {
};

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

Exemple par le biais de: http://blog.omkarpatil.com/2013/02/controller-inheritance-in-angularjs.html

Peut aussi un contrôleur à l'intérieur d'un module d'hériter d'un frère?

var app = angular.module('angularjs-starter', []);

app.controller('ParentCtrl ', function($scope) {
  //I'm the sibling, but want to act as parent
});

app.controller('ChildCtrl', function($scope, $injector) {
  $injector.invoke(ParentCtrl, this, {$scope: $scope}); //This does not work
});

Le deuxième code ne fonctionne pas depuis $injector.invoke nécessite une fonction comme premier paramètre et ne trouve pas la référence à l' ParentCtrl.

295voto

SalmanPK Points 6649

Oui, il peut, mais vous devez utiliser le `` service pour instancier le contrôleur à la place :-

8voto

LauroSkr Points 589

Je pense que, vous devez utiliser usine ou un service, pour donner des fonctions accessibles ou des données pour les deux contrôleurs.

Voici une question similaire---> héritage contrôleur AngularJS

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X