Angular$route服务没有;t被按时注入到控制器中——最初在页面加载时未定义,但后来一切都像符咒一样工作

Angular $route service doesn't get injected to a controller on time - getting undefined initially, on page load, but then all works like a charm

本文关键字:后来 加载 未定义 一样 工作 符咒 服务 route Angular 控制器 注入      更新时间:2023-09-26

每次刷新页面时,我都会收到以下错误的倍数:

TypeError: Cannot read property 'activeSite' of undefined

每页重新加载六个,显然每个选项卡有两个错误。
之后,网站正常工作,没有任何错误
我最初的项目是用yeoman生成的,它运行得很好,没有任何错误,直到错误似乎突然出现
我能够用这个Plunker重新创建问题:

http://plnkr.co/edit/fT3heMEgxfT9zLPKObC9?p=preview

乍一看,一切都很好,但看看控制台,你就会明白我的意思
谢谢你抽出时间
Jared

也许

if ($route.hasOwnProperty('current')) {
    return (active === $route.current.$$route.activeSite);
}

在页面呈现过程中,$route.current可能没有activeSite属性。你可以这样避免错误

$scope.site = function (active) {
    if ($route.current !== undefined) {
        return (active === $route.current.activeSite);
    }
    return false;
};

由于您的绑定是在ng视图之外定义的,AngularJS可能会在设置ng视图之前评估您的绑定,即在从远程位置加载视图时,因此会出现此错误。