Jak ponownie użyć jednego kontrolera do 2 różnych widoków?

Zdefiniowałem jeden kontroler i zastosowałem go do 2 widoków z małymi różnicami.

Kod kątowy:

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);
});

Wyświetl 1:

<div ng-controller="MyCtrl"></div>

Wyświetl 2:

<div ng-controller="MyCtrl"></div>

Przykładowy kod jest bardzo prosty, ale w moim prawdziwym projekcie jest dużo kodu i logiki.

Widok 1 i 2 mają prawie takie same funkcje, tylko z kilkoma różnicami, ale muszę napisać kod dla każdego z nich w kontrolerze.

Nie chcę tworzyć dla nich dwóch różnych kontrolerów, ponieważ mają one większość tej samej logiki. Nie chcę przenosić logiki do usługi, aby udostępnić ją między dwoma kontrolerami, ponieważ logika nie jest tak powszechna, jak usługa.

Czy jest jakiś inny sposób na to?

questionAnswers(4)

yourAnswerToTheQuestion