迁移到 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);
}
迁移到 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);
}