0
我有下面的代碼與服務功能來連接:無法在angularjs
Service:
(function() {
'use strict';
angular
.module('myApp')
.factory('ServiceFactory', ServiceFactory);
ServiceFactory.$inject = ['$http', '$rootScope', 'serviceURLHostFactory','$q'];
var config = {
// TO DO : check if anything required
};
/* @ngInject */
function ServiceFactory($http, $rootScope, serviceURLHostFactory, $q) {
var session = {};
var userName = null;
var userId = null;
var pwd = null;
function getUserSession() {
return session;
}
function setUserSession(session) {
session = session;
}
function getUserName() {
return userName;
}
function setUserName(userName) {
userName = userName;
}
function getUserId() {
return userId;
}
function setUserId(userId) {
userId = userId;
}
function getPwd() {
return pwd;
}
function setPwd(pwd) {
pwd = pwd;
}
var service = {
getUserSession: getUserSession,
setUserSession: setUserSession,
getUserName: getUserName,
setUserName: setUserName,
getUserId: getUserId,
setUserId: getUserId,
getPwd:getPwd,
setPwd:setPwd,
getLoginSession: getLoginSession
};
\t \t var response ={};
//Fetch Use Session
function getLoginSession() {
var URL = serviceURLHostFactory.getServiceServerHost();
/*return $http({
method: 'POST',
url: 'response.json',
data: {'username': getUserName, 'pwd': getPwd}
})
.then(httpCompleted)
.catch(httpFailed);*/
response = user":{"uid":"3","name":"xyz","mail":"[email protected]","theme":"","signature":"","signature_format":"filtered_html","created":"1462429963","access":"1462445668","login":1462445753,"status":"1","timezone":"Asia/Kolkata","language":"","picture":null,"data":false,"roles":{"2":"authenticated user"},"rdf_mapping":{"rdftype":["sioc:UserAccount"],"name":{"predicates":["foaf:name"]},"homepage":{"predicates":["foaf:page"],"type":"rel"}}}}
return response;
function httpCompleted(response) {
return response.data;
}
function httpFailed(e) {
console.error('Unable to Login' + JSON.stringify(e));
return $q.reject(e);
}
}
return response;
}
})();
CTRLR:
(function() {
'use strict';
angular
.module('myApp')
.controller('LoginCtrlr', LoginCtrlr);
LoginCtrlr.$inject = ['$scope','$cookieStore','ServiceFactory','$timeout', '$q', '$document', '$rootScope', '$window'];
/* @ngInject */
function LoginCtrlr($scope, $cookieStore, ServiceFactory, $timeout, $q, $document, $rootScope, $window) {
var vm = this;
vm.errMessageLogin = '';
var errMessageLogin = {}; // error message json object
var errMessageArrayLogin = []; // error message array
var constErrMessageLogin = "Please select a Resort from the drop down list.";
//vm.setErrorMessage = setErrorMessage;
initialize();
function setProcessingParameters(message) {
vm.messageTxt = message;
vm.processingUrl = '/login.html';
}
function openProgressBar() {
var defer = $q.defer();
vm.globalPromise = defer.promise;
return defer;
}
function initialize() {
var defer = $q.defer();
var deferTimer = $q.defer();
$timeout(function() {
if (defer !== null) {
//vm.setProcessingParameters('No Message');
//defer = vm.openProgressBar();
deferTimer.resolve();
}
}, 1000);
deferTimer.promise.then(function() {
$timeout(function() {
if (defer !== null) {
defer.resolve();
//vm.setProcessingParameters('Please Wait...');
//defer = vm.openProgressBar();
}
}, 4000);
});
vm.loggedInUserId = $cookieStore.get('userId') || null;
console.log("getSession..");
$cookieStore.remove('userId');
if (vm.loggedInUserId !== '') {
vm.loggedInUserId = vm.loggedInUserId;
} else {
vm.loggedInUserId = '';
}
console.log('Login Name in bank in UI controller : ' + vm.loggedInUserId);
if (vm.loginInUserId === undefined) {
vm.loginInUserId = '';
}
if (vm.loggedInUserId !== undefined && vm.loggedInUserId !== '' && vm.loggedInUserId !== null) {
console.log("User exists..logged in");
}
else {
var sessionService = ServiceFactory.getLoginSession();
sessionService
.then(onAuthenticated)
.catch(onRejectedRequest)
.finally(sessionServiceFinally);
}
function onAuthenticated(resposne) {
console.log('User Session :'+ resposne.data);
$cookieStore.put('userId', resposne.data.userId);
//Set the suer session here and in session name, id etc can be set in factory
ServiceFactory.setUserSession(resposne.data);
vm.deferPromise.promise.then(closeProgressBar);
}
function onRejectedRequest(e) {
console.error('Error in Response of Events List :: ' + JSON.stringify(e.data));
if (e.status === 401 || e.status === 403) {
var logoutURL = $window.location.protocol + '//' + $window.location.host + '/ui/logout.html';
$window.location.assign(logoutURL);
} else {
if (e.status === 500 || e.status === 404) {
alert(e.data.code + ':' + e.data.message);
} else {
alert(e.data.errMsg);
}
}
}
function sessionServiceFinally() {
defer.resolve();
defer = null;
}
function closeProgressBar() {
defer.resolve();
defer = null;
}
}
}
})();
在這裏,我想對存儲的用戶會話登錄。它拋出以下錯誤:
TypeError: undefined is not a function at initialize (http://localhost:9000/scripts/controllers/login.js:78:53) at new LoginCtrlr (http://localhost:9000/scripts/controllers/login.js:22:9) at - var sessionService = ServiceFactory.getLoginSession();
能否請您指導我@rout等問題 – Smitha