我正在尝试使用Angular的ngResource模块从服务器发送接收响应。我正在使用promises但它不起作用,我认为我的代码可能有问题。它按原样:
控制器:
var LoginController = angular.module('LoginController', [
]);
LoginController.controller("LoginController", ['$scope','$location','LoginService', function($scope, $location, LoginService) {
$scope.user = {}
$scope.checkCredentials = function () {
var userCredentials = LoginService.get();
userCredentials.$promise.then(function(result){
$scope.user.login = response.login;
$scope.user.password = response.password;
});
};
}]);
休息模块:
var RestServices = angular.module('RestServices', ['ngResource']);
RestServices.factory('LoginService', ['$resource','$routeParams',
function($resource, $routeParams){
return $resource('/user',{},{
get: {method:'GET', isArray:false}
});
}]);
如果我放线:
var userCredentials = LoginService.get();
直接在控制器的声明中,它正常工作并且对象用户被正确填充并发送到我的视图,但是当我尝试在通过单击按钮调用的函数中执行该操作时(就像它在我的代码中)它不会正确填写用户对象。我的代码可能有什么问题? 提前谢谢。
答案 0 :(得分:0)
改变"结果"到"回复"!
var userCredentials = LoginService.get();
userCredentials.$promise.then(function(response){
$scope.user.login = response.login;
$scope.user.password = response.password;
});
但你也可以用更简洁和惯用的方式实现同样的目标:
LoginService.get(function(data){
$scope.user.login = data.login;
$scope.user.password = data.password;
});