2015-08-07 2 views
0

Я думаю, что я должен переместить некоторые функции от контроллера в AngularJs во внешний «контейнер», но где? Обслуживать?Рефакторинг функций в контроллерах в AngularJS

Например:

.controller('ctrl1', function() { 
    $scope.submit = function() { 
     ... some code here ... 
    }); 
}); 

.controller('ctrl2', function() { 
    $scope.submit = function() { 
     ... the same code here as a function submit of ctrl1 ... 
    }); 
}); 

Спасибо за ваше время.

+0

Зависит от того, что делает код, это должно быть в контроллере? Ли манипулирует привязками $ scope с сущностью? он, вероятно, должен оставаться в контроллере, но это то, что получает данные и делает его доступным для контроллера, а затем, вероятно, нужно зайти в сервис/завод. – JARRRRG

ответ

1

Вы можете использовать завод для этого:

.factory('someService', function(){ 
     return { 
     submit: function(){ 
      var some_data='Text'; 
      return some_data; 
     } 

    } 
    }); 

    .controller('ctrl1', function(someService){ 
     var text=someService.submit(); 
    }); 

    .controller('ctrl2', function(someService){ 
     var text = someService.submit(); 
    }); 

Здесь работает Plunker

Смежные вопросы