是否可以在不触发关联路由的情况下更改 Angular.js 中的位置路径。也许类似于以下内容(不工作的代码):
$location.path("/booking/1234/", {silent: true})
是否可以在不触发关联路由的情况下更改 Angular.js 中的位置路径。也许类似于以下内容(不工作的代码):
$location.path("/booking/1234/", {silent: true})
这是解决方案,在角度模块中编译 - <a href="https://github.com/garakh/ngSilent" rel="nofollow">https://github.com/garakh/ngSilent 只需添加模块然后使用这种方式:
$ngSilentLocation.silent('/new/path/');
您可以在路由器中设置reloadOnSearch
为 false,并且可以更改 url 的“搜索”部分。
这个想法是您应该设计您的 URL 方案,以便如果基本 url 发生变化,它代表不同的资源并且应该重新加载。如果搜索部分发生变化( 之后的部分?
,您可能只是在更改过滤器或排序顺序或其他内容)。
是的,可以使用解决方法。
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
希望能帮助到你