AngularJS Controller 代码:

function AuthConfig($stateProvider, $httpProvider) {
  'ngInject';

  // Define the routes
  $stateProvider

  .state('app.login', {
    url: '/login',
    templateUrl: 'auth/auth.html',
    title: 'Sign in'
  })

  .state('app.register', {
    url: '/register',
    templateUrl: 'auth/auth.html',
    title: 'Sign up'
  });

};

export default AuthConfig;

我无法弄清楚ngInject的用途是什么。有人可以帮我吗?

最佳答案

'ngInject';本身不执行任何操作,只是一个字符串文字。名为ng-annotate的工具将其用作标志:如果函数以'ngInject';开头,它将由ng-annotate处理。

基本上,ng-annotate会转变

angular.module("MyMod").controller("MyCtrl", function($scope, $timeout) {
    "ngInject";
    ...
});


angular.module("MyMod").controller("MyCtrl", ["$scope", "$timeout", function($scope, $timeout) {
    "ngInject";
    ...
}]);

为了使代码具有最小化的安全性。

如果您不使用ng-annotate,则可以安全地忽略或删除该表达式。 但是请注意,如果项目确实使用ng-annotate,则可能会中断其构建过程。
有关ng-annotate及其作用的更多信息,请参见https://github.com/olov/ng-annotate

关于angularjs - ngInject在以下代码段中做什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46556981/

10-11 11:56