将Json数据传递给角度js中的另一个路径模板

时间:2016-04-23 14:37:47

标签: javascript angularjs angular-ui-router

登录后我想将用户详细信息传递给仪表板?角度js怎么可能?

Login.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页面中获取用户详细信息?

3 个答案:

答案 0 :(得分:0)

您应该使用路由器模块ui-routerng-router以便在这种意义上使用angualrjs逻辑,但之后您的页面将通过ajax加载,并且无法应用常规会话http身份验证。 如果是这种情况,请使用angular service provider让我知道编辑我的答案。

如果您希望跨页面保留数据而不使用数据库或服务器。 然后剩下的选项是:sessionStoragelocalStorage。 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);
  }
  //...
});