【问题标题】:Failed to instantiate module when minifying javascript files in AngularJS app with ASP.NET MVC使用 ASP.NET MVC 在 AngularJS 应用程序中缩小 javascript 文件时无法实例化模块
【发布时间】:2018-05-02 17:25:36
【问题描述】:

当我尝试缩小这个控制器时:

Controller2.$inject = ['$scope', 'TestService'];

angular.module('app.controllers')
    .controller('TestController', Controller2);

function Controller2($scope, TestService) {
    $scope.teste = 'right!';
}

我有这个模块文件:

(function () {
    angular.module('app', ['app.controllers', 'app.services', 'socialbase.sweetAlert', 'ngAnimate', 'ui.bootstrap']);
    angular.module('app.controllers', []);
    angular.module('app.services', []);
})();

还有我的 HTML:

<div ng-app="app">
<div ng-controller="TestController" class="container-fluid" style="padding-top: 25px;">
        {{teste}}
    </div>
</div>

但是当我缩小它时,它给了我这个错误:

Failed to instantiate module app due to:
Error: [$injector:nomod] http://errors.angularjs.org/1.6.4/$injector/nomod?p0=app

如果我不缩小 javascript 文件,它可以正常工作。

【问题讨论】:

  • 在您的捆绑包中,您是否使用了IncludeDirectory 并启用了searchSubdirectories?如果是的话,你能显示你的应用程序的文件夹结构吗

标签: angularjs minify


【解决方案1】:

您需要将其注入实例。试试这个方法

var Controller2 = function($scope, TestService) {
    $scope.teste = 'right!';
}
Controller2.$inject = ['$scope', 'TestService'];
angular.module('app.controllers')
    .controller('TestController', Controller2);

【讨论】:

  • @William 与文档 docs.angularjs.org/guide/di#-inject-property-annotation 相同。猜你需要设置一个 plunkr
  • 可以在 plunkr 上缩小吗?仅当我尝试缩小 javascript 文件时才会出现错误。
  • @William 不,您不能,但它可以更好地概述您的解决方案。此外,如果没有发现问题,最好在本地删除并缩小
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-16
  • 2017-04-09
  • 1970-01-01
  • 2014-05-30
  • 2014-06-04
  • 1970-01-01
相关资源
最近更新 更多