2015-11-30 2 views
1

У меня есть служба, где я передаю некоторые данные по щелчку, что отлично работает, но теперь я хочу вытащить эти данные из службы и добавить ее в область действия другого контроллера и просто регистрировать каждый раз, когда есть что-то добавлена ​​функция $ watch.Устанавливает данные из службы в angularjs

Моя служба:

app.service('infoService', function() { 
    var currentInfo = []; 
    return this.method = function(data){ 
     return currentInfo = data; 
    }; 
}); 

Где я пытаюсь вытащить данные

app.controller('clickController', function($scope, infoService) { 
    $scope.data = infoService.method(); 
    $scope.$watch('data', function(newVal, oldVal) { 
     console.log(newVal, oldVal); 
    }); 
}); 

Единственное, что я в настоящее время увидеть последний час ошибки и ошибки.

+0

Можете ли вы быть конкретными об ошибках, которые вы видите? – hkasera

+0

Создайте plnkr, чтобы воспроизвести эту проблему! –

+0

Да, конечно, он говорит, что метод не является функцией, когда я называю это в контроллере. Если я регистрирую данные в службе, проблем нет. – Dennis

ответ

1

Вы можете удалить возвратную заявление от службы

this.method = function(data){ 
    return currentInfo = data; 
}; 

, то вы должны быть в состоянии вызвать функцию в службе

надеюсь, что это помогает.

+0

Нет, подумал и. Но уже пробовал это, ничего не делает. – Dennis

1

Попробуйте положить часы на возвращаемое значение сервиса, например:

$scope.$watch(function() { return infoService.method(); }, function(newVal, oldVal) { 
     console.log(newVal, oldVal); 
    });