Angularjs 重复相同if语句的角度控制器

Angularjs 重复相同if语句的角度控制器,angularjs,Angularjs,我的应用程序中的所有控制器都依赖于我创建的数据提供商类型的服务。该服务由检索各种数据位的函数组成,几乎所有这些方法都允许使用可选参数。输入此可选参数的能力基于角色。问题是我的控制器现在充满了类似于以下内容的代码: // Initializing controller. dataservice.getRole().then(function(role) { $scope.isAdmin = role.isAdmin; }); // After a button press or some oth

我的应用程序中的所有控制器都依赖于我创建的数据提供商类型的服务。该服务由检索各种数据位的函数组成,几乎所有这些方法都允许使用可选参数。输入此可选参数的能力基于角色。问题是我的控制器现在充满了类似于以下内容的代码:

// Initializing controller.
dataservice.getRole().then(function(role) { $scope.isAdmin = role.isAdmin; });

// After a button press or some other event.
if($scope.isAdmin) {
    dataservice.getData($scope.param1, $scope.param2, $scope.optionalText);
} else {
    dataservice.getData($scope.param1, $scope.param2);
}

在我看来,我必须在整个控制器中不断重复这段代码,这似乎是一种代码味道,但我想不出一种方法来构造我不需要的控制器。

这就是我如何认识到的:

基本上:

  • 使用基本控制器逻辑和 返回构造函数()
  • 在派生类中使用(以实现 基本控制器),以丰富实际控制器的范围 ()

  • 目前还没有正式的“angular方式”来实现这一功能,但我希望angular团队将致力于此

    将数据放入服务/工厂。它们是单例,这意味着所有控制器共享同一个实例。@pixelbits您的是我使用的解决方案。我最终创建了一个服务来存放用户数据以及任何需要设置或读取数据的东西,并将该服务作为依赖项。我将其添加为dataservice对象的依赖项,以便它可以从中读取数据,并将其添加到需要设置它的控制器上。工作得很好。如果你写下你的评论作为回答,我很乐意接受。