Bei der Controller-Vererbung in AngularJS wird häufig der verschachtelte Bereich verwendet. Wenn eine Eigenschaft im aktuellen Bereich nicht gefunden werden kann, wird sie standardmäßig im übergeordneten Bereich durchsucht. Wenn sie nicht gefunden werden kann, wird sie durchsucht, bis $rootScope gefunden wird.
Aber in manchen Fällen ist der RootScope unser Controller und es ist unmöglich, eine große Anzahl öffentlicher Attributmethoden in den RootScope zu schreiben.
Wenn es beispielsweise mehrere ähnliche Seiten mit Elementen wie Breadcrumbs, Suchleisten, Symbolleisten, Tabellen usw. gibt. Wenn davon ausgegangen wird, dass Elemente wie Breadcrumb-Tabellen in Anweisungen umgewandelt werden, dann wird es zwangsläufig viele geben Durch die Übergabe vom Controller an die Komponente werden auch viele Toolklassenmethoden für die Datenverarbeitung usw. generiert. Derzeit ist es offensichtlich hässlich, immer wieder denselben Code in den Controller jeder Seite zu schreiben, daher ist die Vererbung der Fall benötigt.
Ich habe eine Lösung auf StackOverflow gefunden. Es stellt sich heraus, dass AngularJS diese Situation bereits berücksichtigt und $controller bereitgestellt hat Editor Der von Ihnen eingeführte AngularJS-Controller wurde von einem anderen Controller geerbt. Ich hoffe, er wird Ihnen hilfreich sein!