【发布时间】:2016-02-05 04:09:16
【问题描述】:
我正在开发一个 AngularJS 应用程序。我有 loginService.js 文件,它定义了如下登录服务:
(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);
}());
javascript中的LoginController定义如下:
(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 文件中得到无法获取未定义或空引用的属性'then'。据我了解,loginService 类应该返回在 LoginController 中处理的承诺。我不确定我在这里犯了什么错误。
【问题讨论】:
-
依赖注入在这里是如何工作的?您正在注册
module.factory("loginService", accountManager);(奇怪的命名?)并将其未命名地注入LoginController。angular是否能够在不抛出错误的情况下找到它?
标签: angularjs