我在AngularJS 1.7.5中有一个非常简单的项目(并尝试使用6)。
我正在使用system.web.optimization进行捆绑。
在关闭优化的情况下运行项目时,它可以正常工作。
启用优化后,我可能会由于注入/缩小而出错:
错误:$ injector:modulerr模块错误
我已经从项目中删除了virtuall的所有内容,当我在angular.js中将断点放置在错误上时,在遇到错误之前,我看到的最后一次注入是ngRoute。
我尝试了多个版本,包括已经缩小的版本。
我已经在需要的项目中使用了$ inject。
我在旧版本的angular中多次使用了此项目。 (低于1.5版)并且有效。
我已经逐步完成了错误处理,它似乎总是在ngRoute或ui-router上中断。即使包含缩小版。
删除脚本时,我收到不同的错误(显然),其中不包含模块。
这个项目是如此简单,我无法想象我在/ pages / home javascript中遇到问题。
在本地运行或发布时,在打开优化功能时会遇到相同的错误,因此,我可以肯定这是一个缩小问题,我一生都无法弄清它为什么会发生。
'use strict';
angular
.module("rpApp", ['ngRoute', 'ui.router'])
.config(function ($routeProvider, $urlRouterProvider, $locationProvider)
{
$locationProvider.hashPrefix('');
$urlRouterProvider
.otherwise('/home');
$locationProvider.html5Mode(true);
})
.run(['$http', function ($http) {
}]);
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
Home Page Using Bootstrap
</div>
</div>
</div>
(function () {
angular
.module("rpApp")
.controller('homeController', homeController);
homeController.$inject = [];
function homeController() {
var vm = this;
}
})();
(function () {
'use strict';
angular.module("rpApp")
.directive('home', homeDirective);
homeDirective.$inject = [];
function homeDirective() {
return {
restrict: 'EA',
replace: true,
scope: {},
require: '?ngModel',
controller: 'homeController',
controllerAs: 'homeVm',
templateUrl: "App/pages/home/home.html",
link: function (scope, elm, atts, c) {
//dom manipulation goes in the link function
}
};
};
})();
(function () {
'use strict';
angular
.module('rpApp')
.config(configRouteHome);
configRouteHome.$inject = [
'$routeProvider',
'$locationProvider'
];
function configRouteHome($routeProvider, $locationProvider) {
$routeProvider
.when('/', {
template: '<div data-home></div>'
})
.when('/home', {
template: '<div data-home></div>'
});
$locationProvider.html5Mode(true);
}
})();
<script src="Scripts/jquery-1.10.2.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.6/angular.min.js">
</script>
<script src="//unpkg.com/@uirouter/angularjs/release/angular-ui- router.min.js"></script>
<script src="Scripts/ngRoute.min.js"></script>
<%: System.Web.Optimization.Scripts.Render("~/Bundles/angular") %>
<base href="/">
</head>
<body>
<div>
<div ng-view ng-cloak></div>
</div>
</body>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Optimization;
using System.Web.UI;
namespace Angular1._7
{
public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new
ScriptBundle("~/Bundles/angular").IncludeDirectory("~/app", "*.js",
true));
bundles.Add(new
StyleBundle("~/Bundles/css").IncludeDirectory("~/app", "*.css", true));
BundleTable.EnableOptimizations = true;
}
}
}
我希望该项目能够捆绑并最小化添加的最少组件。 (ui-router和ng-route),但它似乎从未到达/ app
答案 0 :(得分:0)
看起来您的config函数参数仍然会最小化?
您将需要使用数组注入语法(如对run方法所做的那样)或使用$ inject。