角度路由器.otherwise无法解析路由

时间:2017-05-05 18:23:28

标签: angularjs angular-ui-router

我有这个方法:

.otherwise(function ($injector) {
     var url = $injector.get("$window").location.href,
         $state = $injector.get("$state"),
         queryStringFromURL = url.substring(url.indexOf("?"));

     $state.go("/products", {queryString: queryStringFromURL});
});

当我最初加载页面时,它会以其他方式命中,但页面没有加载,我在控制台中收到此错误:

Error: Could not resolve '/products' from state ''

我也尝试过:

.otherwise(function ($injector) {
     var url = $injector.get("$window").location.href,
         $state = $injector.get("$state"),
         queryStringFromURL = url.substring(url.indexOf("?"));

    return "/products" + queryStringFromURL;
});

但是这里的查询字符串没有从url中删除,之前使用的可选参数在页面加载后从url中删除。

我希望修复上面的第一个解决方案,或者找到一种方法将queryStringFromURL作为参数传递给第二个选项。

1 个答案:

答案 0 :(得分:0)

抛弃正斜线。

$state.go("products", {queryString: queryStringFromURL})

来自文档:

  

$state.go(to [, toParams] [, options])

     

to:字符串绝对状态名称或相对状态路径

更多信息:https://github.com/angular-ui/ui-router/wiki/Quick-Reference#stategoto--toparams--options