我有这个方法:
.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作为参数传递给第二个选项。
答案 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