2017-06-12 222 views
1

所以我用这个网站给我看的基本知识:https://www.codeproject.com/Articles/1130132/Learn-AngularJS-for-BeginnersAngularJS依赖注入 - 隐VS阵注释

和范围继承部分,我被抛出,因为用于该例子中控制的关比例控制器作为控制器的介绍。

是什么区别:

app.controller("PersonController", function($scope) { 
    $scope.employeeData = personData; 
    $scope.employeeMethod = function() { 
     console.log("Hello, I am an Employee"); 
    } 
}); 

app.controller("MainController", ['$scope', function($scope){ 
    $scope.name = "Donald"; 
    $scope.color = "White"; 
}]); 

如在第一个是名称然后功能,第二个是名称,然后支架。

+0

区别在于缩小。检查了这一点https://scotch.io/tutorials/declaring-angularjs-modules-for-minification – scniro

+0

从源头上为OP,“注入依赖的这种方式被称为“依赖注入”还说什么@scniro – Haris

+1

参见[AngularJS开发人员指南 - 依赖注入](https://docs.angularjs.org/guide/di)。 – georgeawg

回答

0

AngularJS调用某些功能(如服务工厂和控制器)通过喷射器。您需要对这些函数进行注释,以便注入器知道注入该函数的服务。有注释你的代码服务名称信息的方式有三种:

  • 使用内联阵列注释(首选)
  • 使用$inject属性注释
  • 隐式地从功能参数名称(有警告)

欲了解更多信息,请参阅AngularJS Developer Guide - Dependency Injection

0

here 隐注释采用功能PARAMS是服务

someModule.controller('MyController', function($scope, greeter) { 
    // ... 
}); 

$scopegreeter高于服务的名称的名称。

因此,无论DI技术工作时,一些JavaScript minifiers /混淆器的使用,因为它们可以重命名功能参数,而不是内联阵除了相同的方式。