Я не могу обновлять данные в своем контроллере с помощью службы. Я хочу сделать http.get в своей службе, выполнить некоторую обработку данных и затем обновить область $ scope контроллера. У меня есть угловое обслуживание, как показано ниже. Из ответов, которые я прочитал на форумах, мои данные должны обновляться в представлении. Но этого не происходит.
app.service('myService', function($http, $rootScope) {
this.selected = {
item: ''
}
this.getData = function(key){
return $http.get('/myapp/stocklist/'+key);
}
this.gs = [];
this.sr = [];
this.siri=[];
var vm=this;
this.cleanData = function(response){
for(var i=0; i<response.data.length; i++) {
vm.gs.push(response.data[i].name);
vm.sr.push(response.data[i].high);
}
vm.siri.push(vm.sr);
}
});
и вот контроллер. Переменные gs и sr являются пробелами. Из того, что я прочитал, мне не нужно использовать часы для этого, и приведенный ниже код должен работать (я не очень понимаю, как использовать часы). Если это будет работать с часами, можете ли вы рассказать мне, как это сделать.
app.controller('graph', ['$scope', '$http', 'myService', function($scope,$http, myService) {
$scope.mySelected = myService.selected;
console.log($scope.mySelected);
myService.getData($scope.mySelected).then(function(response){
myService.cleanData(response);
$scope.sr=myService.siri;
$scope.gs=myService.gs;
console.log(myService.sr);
});
}]);
Я новичок в угловом, а также, возможно, структурируя код в неправильном направлении. Я был бы признателен за любые предложения по дизайну.
Мне также интересно, правильно ли я использую службу для $ http.get. Я задал вопрос раньше на форуме, и это то, что я получил в ответ. Он работает, когда я использую возвращаемые данные из сервисной функции и выполняю обработку данных в самом контроллере. Не могли бы вы помочь?
Пожалуйста, проверьте этот запрос http://stackoverflow.com/questions/36663503/invoke-one-controller-from-another/36663536?noredirect=1#comment60919252_36663536 – user3045179
Если вы положили консоль .log (response) 'прямо перед вашим' myService.cleanData (response) 'есть что-нибудь в объекте? Если да, то как насчет 'console.log (response)' в качестве первой строки внутри метода 'myService' this.cleanData'? Все еще есть вещи в объекте. – Lex
@sachin это не работает.? проверьте это http://plnkr.co/edit/TRpa9540r8TPcMJeYhwy?p=preview, это работает для меня. – sreeramu