2017-06-12 224 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 /混淆器的使用,因爲它們可以重命名功能參數,而不是內聯陣除了相同的方式。