2014-11-08 4 views
0

Если у меня есть контроллерУгловой: как подключить область действия в контроллере и область обслуживания?

angular 
    .module("TestApp") 
    .controller('MainCtrl', function ($scope, MyService) { 

     var array = [1, 4, 5, 6]; 

     function remove() { 
      MyService.remove('id'); 
      $scope.array = array; 
     } 
     render(); 
} 

И сервис

angular.module('TestApp').factory('MyService', function ($rootScope) { 
    function remove(id) { 
     $rootScope.array.splice(id, 1); 
    } 
} 

Но я не могу найти свой массив, который я положил в $ объема в контроллере. Я не вижу его в $ rootScope. Я могу решить эту проблему?

ответ

1

Вы можете передать $ рамки в качестве аргумента в ваш метод обслуживания MyService.remove

angular.module('TestApp').factory('MyService', function ($rootScope) { 
    function remove(id, scope) { 
     scope.array.splice(id, 1); 
    } 
} 

Но после того, что вы обслуживание только сумка для некоторой функции. Пожалуйста, подумайте о том, чтобы хранить массив в сервисе (в коте хранятся в переменной) и добавлять методы для чтения, записи, удаления элементов с вашего сервера MyService. Таким образом вы собираетесь создавать шаблон коллекции.

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