Ich habe eine Seite, die aus mehreren Panels besteht, die in ihrer Struktur sehr ähnlich sind. Sie verwenden jeweils einen Controller. Aber aufgrund ihrer Ähnlichkeit wiederzuverwenden i die Controller-Funktion wie folgt:Wiederverwendung von Controller-Funktion + Erweiterung
function panelController($scope) {
...
}
angular.module('myApp.controllers')
.controller('panel1Controller', panelController);
angular.module('myApp.controllers')
.controller('panel2Controller', panelController);
Das Ergebnis ist, dass panel1 und panel2 haben ihre jeweils eigene Bereiche, aber das gleiche in Bezug auf die schauen, was die Sicht zu binden.
Jetzt aber bin ich an einem Punkt, wo ich das gleiche Muster für Panel3 verwenden möchte, aber mit einer leichten Erweiterung. Das heißt, ich möchte etwas nur in den $ scope für Panel3 einfügen. Also im Idealfall würde ich gerne so etwas machen können:
function panel3ControllerExtension($scope) {
$scope.panel3Field = "I must only live in panel3";
}
angular.module('myApp.controllers')
.controller('panel3Controller', panelController, panel3ControllerExtension);
Aber das ist nicht möglich. Gibt es dafür irgendwelche guten Muster?
Edit: Die ähnlichen Platten ähnlich sind nur in dem, was sie den $ Umfang enthalten erwarten. Insbesondere erwarten Sie, dass der Bereich ein Kundenobjekt enthält. So z.B. panel1 bindet an $ scope.customer.name und panel2 an $ scope.customer.phone. ... Da sie anders aussehen und sich anders verhalten, glaube ich nicht, dass eine Anweisung von ihnen der richtige Weg ist. Korrigiere mich, wenn ich falsch liege.
Sie sollten versuchen, einen Dienst für wiederverwendbare Teile Ihres Codes zu verwenden. –