我是AngularJS的新手。我们在页面之间管理数据吗? 1)我有一个用户登录的应用程序。数据库返回用户详细信息。我需要在其他页面上使用用户详细信息。其他页面不是登录页面的子集,即它们有自己的范围。所以我应该将用户存储在rootScope中,例如$ rootScope.user = user。在rootScope中转储这些数据看起来不是一个好习惯。有没有更好的办法? 2)第二个问题与第一个问题有关。如果我想在第2页上添加一个监视范围变量的$ watch,我该怎么做。
答案 0 :(得分:1)
使用Factory,并存储必要的登录详细信息
app.factory('AuthenticationService', [ '$location','$http', function( $location,$http){
var currentUser;
return {
login: function(username, password){
var endPoint = "url";
var jsonData = {
username: username,
password: password
};
var jsonString = JSON.stringify(jsonData);
$http.post(endPoint, jsonString,{headers: {'Content-Type': 'application/json'}}).success(function (data,status, headers ){
if(data.access == "ok")
{
$location.path("learning");
}
else
{
$location.path("error");
}
});
},
logout: function(){},
isLoggedIn: function(){},
curUser: function(){return currentUser}
};
}
答案 1 :(得分:1)
我对你的问题有几点想法:
1)使用Cookie而不是rooScope,你也可以使用LocalStorage(小心使用,它不适用于所有的探险家)
2)你在寻找发射器和听众是一个很好的解释https://toddmotto.com/all-about-angulars-emit-broadcast-on-publish-subscribing/
祝你好运。