Javascript 带查询字符串参数的角度ui路由器空白页
我已经处理这个查询字符串参数问题很长时间了,如果转到/everything可以正常工作,但是如果尝试像/?之类的操作,它就是不起作用,这是我的两个状态,每个状态都在它自己的文件中Javascript 带查询字符串参数的角度ui路由器空白页,javascript,angularjs,query-string,angular-ui-router,Javascript,Angularjs,Query String,Angular Ui Router,我已经处理这个查询字符串参数问题很长时间了,如果转到/everything可以正常工作,但是如果尝试像/?之类的操作,它就是不起作用,这是我的两个状态,每个状态都在它自己的文件中 var access = accessConfig.accessLevels; $stateProvider.state('store', { abstract: true, templateUrl: 'store/main.html', data: { access: access.user
var access = accessConfig.accessLevels;
$stateProvider.state('store', {
abstract: true,
templateUrl: 'store/main.html',
data: {
access: access.user
}
});
$stateProvider.state('store.home', {
url: '/?cart',
views: {
'': {
templateUrl: 'store/home/home.html',
controller: 'store.home as vm'
}
},
data: {
title: 'Home'
}
});
每当我转到/I获得预期结果时没有任何问题,但如果我尝试转到/?购物车或/?任何我得到空白页的内容,我有一个stateChangeStart事件,该事件在我转到/I转到/?任何内容时都会被调用,但当我转到/?任何内容时,该事件甚至不会被触发
我用的是html5modetrue顺便问一下,有什么线索吗
如果使用ui sref,它可以工作,但如果直接在地址栏中复制/粘贴URL,则无法工作。。这表明,该场景和状态定义是正确的
我们只需确保cart参数具有值。这些示例将起作用,因为我们传递cart param:
<a ui-sref="store.home({cart:458})">
<a ui-sref="store.home({cart:'xyz'})">
其中路径为:
在启用HTML5模式的情况下,检查所有
延伸
为了证明即使在我们想通过地址栏传递参数的情况下,这种方法仍然有效,我在这里创建了一个特殊的Plunk
我们可以看到,它传递了param/?cart=myTestParam,我们可以在这个模板中看到:
你可以在这里观察它的代码
代码中的重要部分是节和元素基
在正确设置html5模式的情况下:
感谢Radim,我忘了说它使用链接工作,但不使用直接访问,如键入、复制/粘贴“/?cart=open”,然后按enter。@Gustavo,我为您创建了一个版本的plunker,可以直接访问地址栏。你可以输入任何你喜欢的参数,看看这些东西是如何工作的。希望它能帮汉克斯很多忙,我看你的代码运行得很好,但我的代码不行,可能是其他原因。
<div ng-controller="appCtrl" >
<a href="{{path}}?cart=abc">
<a href="{{path}}?cart=123">
...
.controller('appCtrl', ['$scope',function($scope) {
$scope.path = document.location.pathname;
}])
{
"cart": "myTestParam"
}
$locationProvider.html5Mode({enabled: true, requireBase: true});