迁移到 AngularJS 1.6.3 后无法从服务获取数据

Cannot get data from service after migrating to AngularJS 1.6.3

迁移到 AngularJS 1.6.3 后,我更改了如下服务:

这是我的服务:

MetronicApp.factory('MyService', ['$http', function($http) {
    return {
    get: function(id, success, error) {
        return $http.get(baseUrl + '/quotation/' + quotationid).then(success,error);
    }
  }
}]);

在 ui-router 中,我正在这样解析数据。

data: function(MyService, $stateParams) {
    return MyService.get($stateParams.id);
}

但在控制器中,数据未定义。我哪里错了?

我们只是在服务部分使用了以下代码:

get: function(){
    return $http.get(url);
}

没有应用任何回调,并且在调用代码中:

service.someMethod().then(function (result) {
      var data = result.data;
}

这是因为您没有从 success/error 回调函数返回任何内容。相反,我建议从 get 方法中删除 .then(success,error);。然后只需调用服务获取方法 来自决心。

data: function(MyService, $stateParams) {
    return MyService.get($stateParams.id);
}