我正在使用ui.router来处理我的路线。这是我想要做的:
我有我的路由器文件,我已经定义了这样的状态:
state('login',{
url:'/login',
views:{
'slot1':{
templateUrl:'app/modules/authentication/authentication.html',
controller:'AuthenticationController',
controllerAs:'authCntrl'
}}})
我想要做的是记录用户是否有这种格式的网址
http://someapp.io/login?user=name&pass=423%%$dsad32
现在我如何定义路由URL以及如何访问用户并传入我的控制器。不需要完整的代码,只需要文档的概念或链接即可。
这就是我的控制器的样子:
(function(){
angular.module("app.auth",[]).
controller("AuthenticationController", function( $state, $stateParams, AuthenticationService, LoadingService){
var self = this;
console.log($stateParams);
}
这会将以下内容记录到控制台:
Object {}
编辑:
奇怪的是,如果我将路由器中的url更改为:
url:'/instore_login?user=&pass='
我能够获得这些价值。这是对的吗?
答案 0 :(得分:1)
您的状态定义需要明确声明它需要参数。使用uirouter进行此操作的方法不止一种。最简单的方法是将其添加到您的URL定义中:
url: '/login?user&pass',
您应始终保持警惕处理用户凭据。这种方法似乎可能是一个糟糕的代码味道。您能否在原始问题中谈谈您对此控制器和状态的计划是什么,我们可以确保您不会面临安全问题。
答案 1 :(得分:0)
在您的AuthenticationController中,注入$ stateParams 它应该是一个像
这样的对象{user: "name", pass: "423%%$dsad32"}