Jquery 对对象进行更改并在AngularJs服务中返回时/何处反映该对象

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

我正在尝试对AngularJS服务中的对象进行一些更改并返回它。但是该值没有改变,并且返回了在第一个位置定义的对象。我也尝试过使用Promise对象进行相同的操作,但也没有任何帮助

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”方法也会返回一个承诺,而不是您期望的值。见: