angularjs - $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”数组存储在服务中并在需要时从控制器调用它会更好吗?
但在我核对这段代码之前,我必须知道这样做是否有任何意义
解决方案
检查与控制器关联的模板是否$rootScope
在其 HTML 中使用。这是一个非常非结构化的设计,有更好的方法来做到这一点。也有点多余,因为$scope
已经有一个名为的属性$root
指向$rootScope
.
有关详细信息,请参阅