登录后我想将用户详细信息传递给仪表板?角度js怎么可能?
mySchoolApp.controller('loginController', ['$scope', '$http', function($scope, $http) {
this.loginForm = function() {
let encodedString = 'uname=' +this.username +'&pwrd=' +this.password;
sessionStorage.user = encodedString;
console.log(sessionStorage.user)
window.location.href = 'dashboard.html';
}
}]);
在控制台中我获得了价值。 如何在dashboard.html页面中获取用户详细信息?
答案 0 :(得分:0)
您应该使用路由器模块ui-router
或ng-router
以便在这种意义上使用angualrjs逻辑,但之后您的页面将通过ajax加载,并且无法应用常规会话http身份验证。
如果是这种情况,请使用angular service provider
让我知道编辑我的答案。
如果您希望跨页面保留数据而不使用数据库或服务器。 然后剩下的选项是:sessionStorage和localStorage。 localStorage会永久保存数据,直到浏览器缓存删除它,而另一个显然是会话。
sessionStorage.setItem('myCat', 'Tom');
如果你想保持像对象或数组这样的js集合首先将其字符串化:
var user = {pass:'moo', name: 'boo'};
sessionStorage.setItem('userDetais', JSON.stringify(user));
答案 1 :(得分:0)
您应该使用ng-route
来实现此目标.Angular不是设计为像这样工作
这是样本
$stateProvider
.state('app', {
abstract: true,
url: "",
template: '<ui-view/>'
})
.state('app.home', {
url: "/",
templateUrl: "partials/main_page.html",
resolve: {
skipIfLoggedIn: skipIfLoggedIn
}
}).state('app.dashboard', {
url: "/dashboard",
templateUrl: "partials/dashboard.html",
controller: 'DashboardCtrl',
activePage:'dashboard',
resolve: {
loginRequired: loginRequired
}
答案 2 :(得分:0)
您可以将其存储在localstorage
中。因此您可以使用angular-local-storage Angular模块。
如何设置:
myApp.controller('MainCtrl', function($scope, localStorageService) {
//...
function submit(key, val) {
return localStorageService.set(key, val);
}
//...
});
如何获得:
myApp.controller('MainCtrl', function($scope, localStorageService) {
//...
function getItem(key) {
return localStorageService.get(key);
}
//...
});