从其他地方跳转过来的地址类似于
http://www.test.com/#/login?mustLogin=1&returnUrl=http:%2F%2Fwww.back.com%2F#%2Fback
编码前是
http://www.test.com/#/login?mustLogin=1&returnUrl=http://www.back.com/#/back
然后我的$stateProvider是
$stateProvider.state("login", angularAMD.route({
url: "/login?mustLogin&returnUrl",
templateUrl: "/login/module/auth/views/login.html",
controller: "loginController"
}));
然后我在loginController里
console.log($stateParams);
得到
Object {mustLogin: "1", returnUrl: "http://www.back.com/"}
可以查看出#之后的字符丢失了,
我希望能获取到returnUrl完整的值
修正:
首先,
$stateProvider
写的不对,url
不用那么写其次,你说的从其他地方跳过来的
url
也不对,如果正确使用了encodeURIComponent
API,returnUrl
应该是这样的http%3A%2F%2Fwww.back.com%2F%23%2Fback
,里面不会出现#
。你得去检查跳转你url
的地方是否处理错误了