是否可以在不触发关联路线的情况下更改Angular.js中的位置路径。也许类似于以下内容(不是工作代码):
$location.path("/booking/1234/", {silent: true})
答案 0 :(得分:1)
您可以在路由器中将reloadOnSearch
设置为false,然后您可以更改网址的“搜索”部分。
这个想法是你应该设计你的URL方案,这样如果基本URL改变,它代表一个不同的资源,应该重新加载。如果搜索部分发生更改(?
之后的部分,则可能只是更改过滤器或排序顺序等)。
答案 1 :(得分:0)
是的,可以使用解决方法。
var off = $scope.$on('$stateChangeStart', function (e) {
e.preventDefault();
off();
});
$location.path("/booking/1234/");
它的工作方式是 - 它缓存下一个状态更改事件 - 让他不会发生(通过调用" preventDefault",然后调用自己取消注册此事件处理程序)。
仅在Chrome上测试过。 在这篇文章中看到了它:https://github.com/angular-ui/ui-router/issues/64
希望有所帮助
答案 2 :(得分:0)
以下是以角度模块编译的解决方案 - https://github.com/garakh/ngSilent 只需添加模块然后使用这种方式:
$ngSilentLocation.silent('/new/path/');