Ich habe einen Controller definiert, und wenden Sie es auf 2 Ansichten mit kleinen Unterschieden an.Wie kann ein Controller für zwei verschiedene Ansichten wiederverwendet werden?
Angular Code:
app.controller('MyCtrl', function($scope) {
$scope.canSave = false;
$scope.demo = {
files : [{
filename: 'aaa.html',
source: '<div>aaa</div>'
}, {
filename: 'bbb.html',
source: '<div>bbb</div>'
}]
}
$scope.newFile = function(file) {
$scope.demo.files.push(file);
}
$scope.$watch("demo.files", function(val) {
$scope.canSave = true;
}, true);
});
Ansicht 1:
<div ng-controller="MyCtrl"></div>
Ansicht 2:
<div ng-controller="MyCtrl"></div>
Das Codebeispiel ist sehr einfach, aber es gibt eine Menge Code und Logik in meinem echten Projekt.
Die Ansicht 1 und 2 haben fast die gleichen Funktionen, nur mit ein paar Unterschieden, aber ich muss etwas Code für jeden von ihnen in der Steuerung schreiben.
Ich möchte nicht 2 verschiedene Controller für sie erstellen, weil sie die meisten der gleichen Logik haben. Ich möchte die Logik nicht in einen Dienst verschieben, um ihn zwischen den beiden Controllern zu teilen, weil die Logik nicht so üblich ist, um ein Dienst zu sein.
Gibt es einen anderen Weg, es zu tun?
Also einfach alles, was man für beide Ansichten in diesem einen Controller benötigen setzen und Sie sind bereit zu gehen ... – finishingmove
Die Logik muss nicht immer und überall verwendet werden, sich zu bewegen es zu einem Dienst. Ein Service muss der Ort sein, an dem der Großteil Ihrer Logik gehen sollte, egal ob er geteilt wurde oder nicht. – ganaraj