【问题标题】:$routeChangeStart and similar not working on page load$routeChangeStart 和类似的在页面加载上不起作用
【发布时间】:2017-01-24 13:47:41
【问题描述】:

在我的 Angular Web 应用中,

$routeProvider
    .when('/topic/:keyword/heath-feed', {
        controller: 'hfController',
    })
    .when('/topic/:keyword/heath-feed/:storyType', {
         controller: 'hfController',
    })

在 ng-route 的上述路由配置中,$routeChangeStart 和 $routeChangeSuccess 事件按预期触发 '/topic/:keyword/heath-feed'。但它们不会为 '/topic/:keyword/heath-feed:storyType' 路由触发。我添加了一个额外的 $routeChangeError 块来检查路由是否没有被正确解析,但该块也没有被触发。

内部路由和直接登陆页面/重新加载都存在问题。

$rootScope.$on('$routeChangeError', function(event, current, previous, rejection) {
        ...
    })

$rootScope.$on("$routeChangeSuccess", function(event, next, current) {
       ...
    });
$rootScope.$on("$routeChangeStart", function (event, next, current) {
       ...
    });

这些是我正在使用的路由监听器。

有什么线索吗?

【问题讨论】:

  • 路线改变与否?
  • 是的,路由正在改变,控制器被调用,所有功能都正常工作。就这一点就迷惑了。 叹息
  • 你能把它弄成小提琴或小玩意儿吗?
  • 复制真的很麻烦。如果有人在某个时间暗中希望遇到类似的事情,宁愿解决它还是等待。

标签: javascript angularjs ngroute angularjs-ng-route


【解决方案1】:

状态没有改变,因为您为两条路线分配了相同的控制器。由于两个路由都代表同一个控制器,它可能不会反映在 routeChange 上。

【讨论】:

  • 我有超过 15 个路由配置和 6 个控制器,并且 $routeChangeStart 可以在其他任何地方使用。 yells sigh 不应该这样。
  • 另外,状态不应该取决于 ngView 而不是分配的控制器吗?
  • 您能否提供更多信息?看到提供的这么多信息,很难找出问题所在。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多