首页 > 解决方案 > $rootScope 存储在组件 $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”数组存储在服务中并在需要时从控制器调用它会更好吗?

但在我核对这段代码之前,我必须知道这样做是否有任何意义

标签: angularjs

解决方案


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

有关详细信息,请参阅


推荐阅读