代码之家  ›  专栏  ›  技术社区  ›  Praveen D

AngularJS缩小的js文件无法工作

  •  1
  • Praveen D  · 技术社区  · 8 年前

    我将所有js文件缩小并合并到一个文件中,并将其包含在html中,但站点中没有任何内容可用。

    还有其他方法可以减少对js文件的http调用数量吗。

    3 回复  |  直到 8 年前
        1
  •  5
  •   Dayle Salmon    8 年前

    缩小AngularJS文档时,遵循文档进行依赖注入非常重要,否则代码可能会中断。您应该确保使用的是首选数组方法,示例如下:

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

    如Angular JS官方文件所示: https://docs.angularjs.org/guide/di .

        2
  •  3
  •   Alex M DongGE    8 年前

    这似乎是 implicit dependency injection 根据Angular JS文件:

    使用 strict dependency injection 相反例如:

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

    此外,考虑使用 ng-annotate 这要容易得多:

    angular
      .module("MyModule")
      .controller("MyCtrl", function ($scope, $timeout) {
        "ngInject";
        ...
      });
    
        3
  •  1
  •   Srijith Moran Neuhof    8 年前

    为了跟进@dayle鲑鱼的回答,如果你有这样的管制员

    app.controller('DemoCtrl', function(dependency1, dependency2){
     // controller code
    });
    

    将其更改为

    app.controller('DemoCtrl', ['dependency1', 'dependency2', function(dependency1, dependency2){
     // controller code
    }]);
    

    原因 JS小型化器通常会更改注入的依赖项的名称。Angular对依赖关系是什么一无所知。因此,您可以手动声明它们,这样缩小后就不会产生问题!