ngStrictDi主要是讲angular依赖注入的写法问题,如果写法不规范,可能会在加载压缩版Angular的时候导致Unknown provider的错误。
var app = angular.module('ngAppStrictDemo', []);
1. 不规范写法
app.controller('BadController', function($scope) {
$scope.a = 1;
$scope.b = 2;
});
2.规范写法
//使用了详细的注释,数组形式注入
app.controller('GoodController1', ['$scope', function($scope) {
$scope.a = 1;
$scope.b = 2;
}]);
//直接使用$inject服务,注入
app.controller('GoodController2', GoodController2);
function GoodController2($scope) {
$scope.name = 'World';
}
GoodController2.$inject = ['$scope'];
在1.6.x之后,依赖注入的书写越来越严格,这是为了避免压缩代码后产生的unknown provider问题。尤其是小编使用了webpack打包Angular项目之后,这个问题尤为突出。
如果依赖过多,显示或者解读代码不时,推荐大家使用规范写法的第二种。