我只掌握AngularJS的基本知识.我创建了一个AngularJS应用程序.
index.html有两个用于登录和注册的链接.使用ng-view.默认情况下,login是视图.在登录视图中,我有表单.这将发布到servlet并返回对象的状态.我有另一页home.html wis = ch有自己的ng-app模块.登录成功后,我想路由到home.html pgae.它还有两个链接和一个ng-view来显示链接.
的index.html
Login - AngularJS
的login.html
Login
app.js
//Define Routing for app angular.module('sampleApp', []).config(['$routeProvider', function($routeProvider,$locationProvider) { $routeProvider .when('/login', { templateUrl: 'login.html', controller: 'LoginController' }) .when('/register', { templateUrl: 'register.html', controller: 'RegisterController' }) .otherwise({ redirectTo: '/login' }); // $locationProvider.html5Mode(true); //Remove the '#' from URL. }]); //Home Page Module angular.module('homeApp', []).config(['$routeProvider', function($routeProvider,$locationProvider) { $routeProvider .when('/home', { templateUrl: 'home.html' }) .when('/profile', { templateUrl: 'profile.html', controller: 'ProfileController' }) .when('/settings', { templateUrl: 'settings.html', controller: 'SettingsController' }) .otherwise({ redirectTo: '/home' }); // $locationProvider.html5Mode(true); }]);
LoginController(既有登录又有注册.我只实现了登录)
angular.module('sampleApp').controller('LoginController', function($scope,$location,$http) { $scope.user = {}; $scope.loginUser = function() { $http({ method: 'POST', url: 'http://localhost:8080/AngularJSLogin/login', headers: {'Content-Type': 'application/json'}, data: $scope.user }).success(function (data) { var strJSON=data; if(strJSON.status=="Success") { alert("success"); $location.path( "/home" ); } else { $scope.user.status=strJSON.userId+" : "+strJSON.status; } }); }; }); angular.module('sampleApp').controller('RegisterController', function($scope,$location,$http) { $scope.user = {}; });
home.html的
Login - AngularJS {{user.name}}
每个链接都有自己的控制器.
当我点击具有有效用户名和密码的登录按钮时,它会显示成功警报,但不会进入主页(home.html)页面.
如何路由到另一个具有不同ng-app模块的页面?以及如何将此User对象传递给home.html ng-app模块,以便它可以拥有用户数据并显示用户名和其他值?
我知道这已经超过2岁了,我相信你可能已经过了这个但我会告诉你我是怎么做的,因为我有类似的设置.在客户端做一切都不会为你做.您需要将一些路由逻辑卸载到服务器端.其他人可能建议在整个应用程序中只使用一个ng-app,但对我来说这不是必需的.多应用程序是必需的.
我的应用程序包括6 ng-apps共享一些常见的模块和服务.每个人都有自己的责任,例如我有一个像你一样有登录,注册和密码重置的视图,而其他人是"受保护的ng-apps".
让我的工作工作的诀窍是登录请求.我从服务器成功登录时没有返回200 json,我只是重定向到主页,即我成功登录时提供受保护的主要ng-app.然后我设置一个httpOnly Cookie,用户信息序列化为JWT字符串.
Point is ...将每个角度应用程序视为一个页面,并让您的服务器端代码根据您的身份验证规则决定要显示的内容.
希望这有助于任何人使用模型:)