我在使用angularjs获取web api请求时遇到错误。可以对此发表任何评论。
$scope.getSelections = function () {
var user = ($scope.userInfo.userName).toString();
selectionsaveSrv.getSelections(user).then(function (data) {
var data = data;
});
}
服务:
function selectionsaveservice(appConfig, $q, fSrv, localStorageService, adalAuthenticationService, $http) {
getSelections = function (user) {
var user = user;
var webApiuri = appConfig.webApiUri + '/UserPreferences/GetSelections';
$http.get(webApiuri, { params: { UserName: user } }).
success(function (data, status, headers, config) {
return data;
}).
error(function (data, status, headers, config) {
});
}
return { getSelections: getSelections }
}
答案 0 :(得分:1)
根据角度文档。成功和错误方法不再可用。这些方法已经过折旧,但他们建议使用标准的 .then
方法。
更改服务中的 getSelections
方法,如下所示,
getSelections = function (user) {
var user = user;
var webApiuri = appConfig.webApiUri + '/UserPreferences/GetSelections';
$http.get(webApiuri, { params: { UserName: user } }).
.then(function(response){
if(response.status === 200) {
return response.data;
}
}, function(error) {
console.log(error)
});
}
答案 1 :(得分:1)
由于错误明确指出无法读取属性'然后'未定义的,错误背后的原因是.then
方法在promise
对象上可用,并且您期望从getSelections
方法获得承诺。通过从getSelections
方法返回承诺应该可以解决您的问题。
getSelections = function (user) {
var user = user;
var webApiuri = appConfig.webApiUri + '/UserPreferences/GetSelections';
return $http.get(webApiuri, { params: { UserName: user } });
}
注意:请勿使用
success
和error
回调,因为他们已弃用