0
我需要在兩個不同頁面(login.html和index.html)之間共享數據。 予定義的服務如下: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';
}
}])
爲index.html的
.controller('profileCtrl', function(loginData){
console.log(loginData.loggedUser());
})
定義。如果我調用函數loginData控制器.log登錄控制器內的用戶,它運行良好。另一方面,從索引控制器調用相同的函數,則返回undefined。 我該如何解決它? 謝謝!
您正在嘗試在定義它之前進行記錄。 IE的索引控制器在登錄控制器完成填充之前記錄用戶數據。你唯一的原因是未定義的,而不是「'是因爲userData最初被定義爲一個var而不是作爲其一部分(例如this.userdata =」「;) – Beartums