严格的DI模式基本上在运行时发现不符合最小化要求的代码时引发错误;但请注意,该代码可能是正确的,并且没有逻辑语法错误。
引用文档:
如果该属性存在于app元素上,则将以“ strict-di”模式创建注射器。这意味着应用程序将无法调用 不使用显式函数注释 (因此不适合缩小)的
函数 (如“依赖关系注入”指南中所述),并且有用的调试信息将有助于跟踪这些错误的根源。
例如,此代码触发错误,因为
($scope, $http,$filter)没有使用数组
$inject或
.controller(A,B)将数组作为第二字段的方法显式注入。
angular.module("myApp", [])// BadController cannot be invoked, because// the dependencies to be injected are not// explicitly listed..controller("BadController", function($scope, $http, $filter) { // ...});右代码段:
angular.module("myApp", []) .controller("GoodController1", GoodController1);GoodController1.$inject = ["$scope", "$http", "$filter"];function GoodController1($scope, $http, $filter){}要么:
angular.module("myApp", []) .controller("GoodController1", ["$scope", "$http", "$filter", function ($scope, $http, $filter){ //...}]);为了回答您的问题,使用它不会显着提高性能。它仅授予您最小化错误的安全性。这是因为最小化会更改变量名称,例如在您
$scope不使用显式批注的情况下使用它会破坏代码。



