Dans l'héritage du contrôleur dans AngularJS, la portée imbriquée de la portée est couramment utilisée. Par défaut, lorsqu'une propriété est introuvable dans la portée actuelle, elle sera recherchée dans la portée parent. Si elle est introuvable, elle sera recherchée jusqu'à ce que $rootScope soit trouvé.
Mais dans certains cas, le rootScope est notre contrôleur, et il est impossible d'écrire un grand nombre de méthodes d'attributs publics dans le rootScope.
Par exemple, s'il existe plusieurs pages similaires avec des éléments tels que des fils d'Ariane, des barres de recherche, des barres d'outils, des tableaux, etc. Si des éléments tels que des tableaux de fil d'Ariane sont considérés comme étant transformés en directives, alors il y aura inévitablement de nombreux des exigences de configuration similaires. Le passage du contrôleur au composant générera également de nombreuses méthodes de classe d'outils pour le traitement des données, etc. À l'heure actuelle, il est évidemment laid d'écrire à plusieurs reprises le même code dans le contrôleur de chaque page, donc l'héritage est nécessaire.
J'ai trouvé une solution sur StackOverflow. Il s'avère qu'AngularJS a déjà pris en compte cette situation et a fourni $controller
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, $controller) { $controller('ParentCtrl', {$scope: $scope}); //This works });
Ce qui précède est donné par le editor Le contrôleur AngularJS que vous avez présenté est hérité d'un autre contrôleur. J'espère qu'il vous sera utile !