Jquery 对对象进行更改并在AngularJs服务中返回时/何处反映该对象
我正在尝试对AngularJS服务中的对象进行一些更改并返回它。但是该值没有改变,并且返回了在第一个位置定义的对象。我也尝试过使用Promise对象进行相同的操作,但也没有任何帮助Jquery 对对象进行更改并在AngularJs服务中返回时/何处反映该对象,jquery,angularjs,rest,service,Jquery,Angularjs,Rest,Service,我正在尝试对AngularJS服务中的对象进行一些更改并返回它。但是该值没有改变,并且返回了在第一个位置定义的对象。我也尝试过使用Promise对象进行相同的操作,但也没有任何帮助 angular.module('demoService', []). service('myService', function($http) { var gaugeData = { maxValue: 5000, animationSpeed: 100, va
angular.module('demoService', []).
service('myService', function($http) {
var gaugeData = {
maxValue: 5000,
animationSpeed: 100,
val: 5000
}; //this gets returned
console.log(gaugeData);
this.get = function() {
$http.get('myurl').then(function(data) {
gaugeData.val = data.data.Tweets[0].FAVOURITE_COUNT; //this wont reflect in gaugeData outside this function
//return gaugeData;
console.log(gaugeData);
});
}
this.list = function() {
return gaugeData;
}
})
我是否可以更改测量数据的值并将其与更改后的值一起返回控制器?我建议您仅从服务返回承诺对象:
service('myService', function($http) {
this.get = function() {
return $http.get('myurl');
}
})
在你的控制器里
var gaugeData = {
maxValue: 5000,
animationSpeed: 100,
val: 5000
};
console.log(gaugeData);
myService.get().then(function(data) {
gaugeData.val = data.data.Tweets[0].FAVOURITE_COUNT;
console.log(gaugeData);
});
您如何使用
this.get
?当您返回数据时,可能get
操作没有完成。@Satpal我在我的控制器中调用get,如下所示:return$scope.gaugeHome={gaugeData:myService.get()}@Qing,但它确实显示了console.log(gaugeData)的数据;在控制台中,承诺的“then”方法也会返回一个承诺,而不是您期望的值。见: