何时何地在angularjs中使用多个控制器/指令/服务/工厂?

时间:2016-01-19 09:55:51

标签: angularjs angularjs-directive angularjs-scope angularjs-service

我对angularJs很新。我理解了一些概念,但仍有很多事情不清楚。我正在寻求你的帮助,通过一些演示来了解以下情况清楚了解。

  1. 何时应使用多个指令/控制器/工厂/服务等
  2. 我是否应该使用多个指令或多个控制器。
  3. 同样,我是否应该选择多个工厂或多个指令......或多个控制器。
  4. 感谢任何帮助。 谢谢

2 个答案:

答案 0 :(得分:0)

我将为您提供非常简单的帐户,了解您可以使用它们做什么。

控制器用于处理与特定视图相关的操作。如果您在同一标记中有学生专区教师专区并且在他们自己的地区运营,您可能应该选择两个控制器来管理它们。

controller('students', function($scope) {

   //Load all students
   $scope.allStudents = getAllStudents()

   //Setup preferences
   $scope.showAll = false;
});

工厂和服务是将代码分解为不同细分的好方法。我们假设您有很多学生档案学生分数的功能。你可以有两个工厂来更好地组织它们。

studentProfiles.registerStudent(name, class);
studentProfiles.assignClass(id, class);

studentScores.getAllScores(id);
studentScores.saveScores('science', 97);

当你需要操纵DOM时,你应该去指令。角度指令很复杂,视野非常广泛。你可以用这些做的事情非常多。让我们假设您需要在显示其姓名的视图中附上每个学生的图像。

<div student-name id="255">

directive('studentName', function(studentProfiles){
   link: function(ele, attr) {
       //This line is for pseudo meaning only
      ele.append('<img src="' + studentProfiles.getStudentPicture(attr.id) + ">');
   }
})

互联网上有很多初学者指南。跟着他们,花些时间做自己的练习项目。

答案 1 :(得分:0)

您的所有问题都是相同的,即是否将所有代码放在一个地方或多个地方。我要说几乎在每个应用程序中你都应该有很多控制器,工厂,服务或指令(如果使用的话)。为什么呢?

主要是因为它使代码更具可读性。例如,在简单购物应用程序的情况下,您将拥有负责注册用户(RegisterUserCtrl)的控制器,显示要购买的项目列表(ItemsCtrl)等等。每个看到名称RegisterUserCtrl的人都会知道它的作用。

它还使代码处理更容易。一个大型控制器/工厂/服务可以快速完成数百或数千行代码。并且很难在那里找到任何东西并维护这段代码。我还认为模块化代码更容易测试。

所有,我写的不仅适用于AngularJS,也适用于其他技术。