0
두 개의 서로 다른 페이지 (login.html 및 index.html)간에 데이터를 공유해야합니다. 다음 는 I는 서비스 정의 :Angularjs : 페이지간에 데이터 공유
.service('loginData', function LoginData(){
var userData = '';
this.addUser = function(name){
this.userData = name;
//return userData.user;
}
this.loggedUser = function(){
return this.userData;
}
})
login.html 정의 된 컨트롤러 :
.controller('loginCtrl',['$scope', '$http', '$window', 'loginData', function($scope, $http, $window, loginData){
$scope.btnsubmit = function(username,password){
//scope.user = data_to_send;
var doc = [];
$http.post('http://127.0.0.1:3000/authenticate',{user: username, pwd: password} )
.success(function(response)
{
console.log('1 : ' + response);
if (response != null){
console.log('2 : ' + angular.fromJson(response).user);
doc = angular.fromJson(response);
loginData.addUser(doc[0].user);
console.log(doc[0].user);
// if I call loginData.LoggedUser here -> it works
}
}).error(function()
{
console.log('error')
});
$window.location.href = 'index.html';
}
}])
I는 함수 loginData 호출하면 index.html을
.controller('profileCtrl', function(loginData){
console.log(loginData.loggedUser());
})
정의 제어기 .logged 사용자가 로그인 컨트롤러 안에 있으면 잘 작동합니다. 반면 인덱스 컨트롤러에서 동일한 함수를 호출하면 정의되지 않은 값이 반환됩니다. 어떻게 해결할 수 있습니까? 감사합니다.
정의되기 전에 기록하려고합니다. IE는 로그인 컨트롤러가 로그인하기 전에 userdata를 로깅합니다. userData가 처음에이 항목의 일부가 아닌 var로 정의되었으므로 ('this.userdata = "";) 사용자가 정의되지 않은 이유는'user '입니다. – Beartums