【问题标题】:Avoid page reload on URL change using UI-Router使用 UI-Router 避免在 URL 更改时重新加载页面
【发布时间】:2016-02-01 13:12:43
【问题描述】:

我正在使用ui-router 在我的网络应用中导航。

我有一个搜索页面,我希望用户能够保存包含当前搜索字符串的 URL,以便他可以共享它。

要更新每个搜索字符串更改的 URL 而无需重新加载页面,我确实喜欢文档说:

$state.go('.', { searchString: $scope.searchString }, { location: 'replace', notify: false });

但是根据 UI-Router 库版本,行为完全不同:(观看浏览器控制台)

使用版本0.2.10JSFiddle ui-router 0.2.10

==> 结果和预期一样,修改网址没有任何作用。

使用版本0.2.11JSFiddle ui-router 0.2.11

==> 每次调用 $state.go() 时都会重新加载视图控制器

使用版本0.2.12JSFiddle ui-router 0.2.12

==> 根本找不到 ui-router

使用版本0.2.13JSFiddle ui-router 0.2.13+

==> 从 0.2.13 版本开始,视图控制器不会在每次 $state.go() 调用时重新加载。但是,当重定向到另一个路径时,搜索视图控制器会被重新实例化。

我很困惑。是否有任何ui-router 用户知道这些行为变化。前一个是预期的吗?或者这是一个错误?

谢谢

【问题讨论】:

    标签: javascript angularjs navigation angular-ui-router


    【解决方案1】:

    是的,他们知道这种行为发生了变化,并且现在完全稳定在版本 0.2.15。这是以前的错误,但从0.2.15 版本开始不再存在。

    看,所有releases

    【讨论】:

    • 所以预期的行为是重新实例化我们要离开的视图控制器......这对我来说听起来不太合乎逻辑。 jsfiddle.net/limax84/ox0pyx9q/1 如果这个控制器执行一些繁重的 REST 加载,这将是一种巨大的资源浪费。
    猜你喜欢
    • 2023-03-08
    • 2019-01-28
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    • 2021-01-20
    • 1970-01-01
    • 1970-01-01
    • 2020-08-04
    相关资源
    最近更新 更多