鋤返回一個承諾我可以在一個工廠返回一個承諾在我的控制器使用給出下面的例子:在工廠
廠:
angular
.module('security.authorisation')
.factory('AuthService', [
'$http',
AuthService
]);
function AuthService($http, Endpoints, toastr) {
var authService = {};
// Login function.
authService.login = function (user, success, error) {
var login_url = Endpoints.getUrl("login");
$http.post(login_url)
.success(function (data) {
}).then(function (temp) {
console.log("suc");
}, function (err) {
console.log("err");
});
};
return authService;
}
登錄控制器:
(function() {
'use strict';
angular
.module('login')
.controller('LoginController', [
'$scope',
'AuthService',
LoginController
]);
function LoginController($scope, AuthService) {
$scope.submit = function submit() {
$scope.app = AuthService.initModel;
AuthService.login($scope.app)
.then(function (greeting) {
alert('Success: ' + greeting);
}, function (reason) {
alert('Failed: ' + reason);
});
}
}
})();
我得到錯誤:
TypeError: Cannot read property 'then' of undefined
雖然這個工作,它實際上是沒有必要的。 '$ http'返回一個承諾,這意味着在延期內包裹'$ http'會增加不必要的複雜性。 – Claies
那就對了!如果你正在發起一個異步請求,這將是必要的。 – Aer0