$rootScope 存储在组件 $scope 中

$rootScope stored inside the component $scope

嗨,我刚刚接到任务维护一个用 AngjularJs 编写的客户端,我对 Angjular 不是很熟悉,但我刚刚发现这段代码,我认为它是纯粹的精神错乱..

有一项服务可以从 API 中获取类型数组,然后将其附加到 rootScope

// just use a global, we'll need this array of types later
$rootScope.opts = opts;

控制器(包括上面的服务)

 //this cant be right
 $scope.$rootScope = $rootScope;

 $scope.setCategory = (type) => {
   // trust that the service has set the options into $rootScope
   const option = $scope.$rootScope.opts.find(
   typeOption => typeOption.name === type);
   return option;
 }

我认为最好将“opts”数组存储在服务中,并在需要时从控制器中调用它?

但在我修改这段代码之前,我必须知道这样做是否有意义

检查与控制器关联的模板是否在其 HTML 中使用了 $rootScope。这是一个非常非结构化的设计,有更好的方法来做到这一点。也有点多余,因为 $scope 已经有一个名为 $root 的 属性 指向 $rootScope.

有关详细信息,请参阅