我正在使用AngularJS應用程序。我有loginService.js文件定義如下登錄服務:javascript服務未返回承諾
(function() {
var loginService = function ($http) {
var login = function (userName, loginPassword) {
var data = "grant_type=password&username=" + userName + "&password=" + loginPassword;
$http.post("/Token", data, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } })
.then(function (response) {
return response.data;
});
};
return {
login: login
};
};
var module = angular.module("MyApp");
module.factory("loginService", loginService);
}());
,並在LoginController中的JavaScript的定義如下:
(function() {
var app = angular.module("kanbanBoard");
var LoginController = function ($scope, $location, loginService, localStorageService) {
var loginData = {
userName: "",
loginPassword: ""
};
$scope.loginData = loginData;
var onLoginComplete = function (data) {
alert(data);
localStorageService.set('authorizationData', { token: response.access_token, userName: userName });
//$location.url("/");
};
var onError = function (result) {
alert(result);
$scope.error = result;
}
$scope.login = function() {
loginService.login($scope.loginData.userName, $scope.loginData.loginPassword)
.then(onLoginComplete, onerror);
}
};
app.controller("LoginController", LoginController);
}());
我得到無法未定義來獲得屬性「然後」或在LoginController.js文件中爲空引用。據我所知,loginService類應該返回在LoginController中處理的promise。我不確定我在這裏做了什麼錯誤。
依賴注入是如何在這裏工作的?你正在註冊'module.factory(「loginService」,accountManager);'(奇怪的命名?)並將它注入到'LoginController'中。 '角'能夠找到它而不會拋出錯誤? – yangmillstheory