【问题标题】:If user changes the url and the wrong view is rendered如果用户更改了 url 并且呈现了错误的视图
【发布时间】:2016-03-28 18:05:08
【问题描述】:

我有一个重定向到相同状态的状态更改回调。

  $rootScope.$on('$stateChangeStart', function(event, toState, toStateParams) {        
    if (toState.name != 'wsConnect') {
        console.log("change path!!");
        $location.path('/connect');                  

    }
  });

当用户打开新标签并输入带有任何 url 锚点的路由时,它从一开始就可以正常工作。用户从回调中看到视图,但是 如果用户手动更改锚点并按回车键 回调一半工作 - 锚点值被恢复,但用户看到的不是来自锚点的路线视图。

如果您重新加载页面,“错误”就会消失。

我找到了解决方法:

    if (toState.name != 'wsConnect') {
        console.log("change path!!");
        $interval(function () {
          $state.go('wsConnect');
          $location.path('/connect');
        }, 1, 1);
    }

【问题讨论】:

标签: javascript angularjs angular-ui-router


【解决方案1】:

也许考虑使用 $viewContentLoading 在视图开始加载时触发,在渲染 DOM 之前。 '$rootScope' 广播事件。

https://github.com/angular-ui/ui-router/wiki#view-load-events

【讨论】:

  • 谢谢,应该使用 viewContentLoaded 而不是 Loading。另外,我还必须手动设置状态。
猜你喜欢
  • 2021-10-15
  • 2012-01-26
  • 1970-01-01
  • 1970-01-01
  • 2011-06-01
  • 2023-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多