我無法使用服務更新控制器中的數據。我想在我的服務中做一個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