Javascript 带查询字符串参数的角度ui路由器空白页

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

我已经处理这个查询字符串参数问题很长时间了,如果转到/everything可以正常工作,但是如果尝试像/?之类的操作,它就是不起作用,这是我的两个状态,每个状态都在它自己的文件中

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});