设置 rootScope.angular 的值是一种代码味道吗?

Is setting the value of rootScope.angular a code smell?

我正在查看别人编写的这段代码。在我看来,这像是一种糟糕的代码味道。在 $rootScope 下复制对 angular 的引用的正当理由是什么?

    $rootScope._ = $window._;
    $rootScope.angular = $window.angular;

根据经验,通常 将任何东西分配给 AngularJS 中的 $rootScope 是不好的。这就像在大多数语言中分配一个全局变量——当您发现自己在这样做时,您可能应该停下来想想是否有另一种方法可以解决您的问题。它们往往会使代码变得混乱且难以理解。

另一方面……这太奇怪了,而且绝对是一种糟糕的代码味道。我看不到一个 有效 的理由,为什么你会在 $rootScope 上抛出一个已经全局可访问的变量,尤其是将 angular 本身抛到 $rootScope 上。