Maison  >  Article  >  interface Web  >  Le contrôleur AngularJS hérite d'un autre contrôleur

Le contrôleur AngularJS hérite d'un autre contrôleur

WBOY
WBOYoriginal
2016-05-16 09:00:202283parcourir

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 !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn