我得到" ReferenceError:未定义成功"当从控制器到我的node.js进行Restful调用时,如下所示:
authControllers.js:
authControllers.controller('authCtrl', ['$scope', '$location', '$window', 'UserService', 'AuthenticationService',
function authCtrl($scope, $location, $window, UserService, AuthenticationService) {
$scope.me = function() {
UserService.me(function(res) {
$scope.myDetails = res;
}, function() {
console.log('Failed to fetch details');
$rootScope.error = 'Failed to fetch details';
})
};
}]);
authServices.js:
authServices.factory('UserService',['$http', function($http) {
return {
me:function() {
return $http.get(options.api.base_url + '/me').success(success).error(error)
}
}
}]);
HTML:
<div class="row" data-ng-controller="authCtrl" data-ng-init="me()">
<div class="col-lg-12">
<div class="panel panel-primary">
<div class="panel-heading">
<strong>Your Details</strong>
</div>
<div class="panel-body">
<p>{{myDetails.data.username}}</p>
<p>{{myDetails.data.email}}</p>
</div>
</div>
</div>
</div>
正在接收成功的nodeJs呼叫并且它也会返回数据,但是 无法在前端得到它。请帮忙!
答案 0 :(得分:5)
错误是:
return $http.get(options.api.base_url + '/me').success(success).error(error)
要解决此问题,请不要尝试引用不存在的success
和error
个功能。
return $http.get(options.api.base_url + '/me')
当您拨打正确使用的$q
时,Angular会返回$http
承诺。不推荐使用成功和错误解决方法。
$ http遗留承诺方法成功与错误已被弃用。
答案 1 :(得分:2)
.success和.error不是$ http.get调用的一部分。 $ http.get本身就是一个承诺,所以当你打电话给你的服务时,你需要
authControllers.controller('authCtrl', ['$scope', '$location', '$window', 'UserService', 'AuthenticationService',
function authCtrl($scope, $location, $window, UserService, AuthenticationService) {
$scope.me = function() {
UserService.me().then(function(res) {
$scope.myDetails = res;
}, function() {
console.log('Failed to fetch details');
$rootScope.error = 'Failed to fetch details';
})
};
}]);
,您的服务应保持简单:
authServices.factory('UserService',['$http', function($http) {
return {
me:function() {
return $http.get(options.api.base_url + '/me');
}
}
}]);
更多关于$http