4

是否可以在不触发关联路由的情况下更改 Angular.js 中的位置路径。也许类似于以下内容(不工作的代码):

$location.path("/booking/1234/", {silent: true})
4

3 回答 3

1

这是解决方案,在角度模块中编译 - <a href="https://github.com/garakh/ngSilent" rel="nofollow">https://github.com/garakh/ngSilent 只需添加模块然后使用这种方式:

$ngSilentLocation.silent('/new/path/');
于 2014-09-01T10:37:12.073 回答
1

您可以在路由器中设置reloadOnSearch为 false,并且可以更改 url 的“搜索”部分。

这个想法是您应该设计您的 URL 方案,以便如果基本 url 发生变化,它代表不同的资源并且应该重新加载。如果搜索部分发生变化( 之后的部分?,您可能只是在更改过滤器或排序顺序或其他内容)。

于 2012-10-23T15:20:34.043 回答
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

希望能帮助到你

于 2013-11-26T14:06:57.650 回答