AngularJs$injector:modulerr经过RequireJS r.js优化
AngularJs $injector:modulerr after RequireJS r.js optimization
AngularJS RequireJS应用程序正在构建中抛出未捕获错误:[$injector:moduler]未能实例化模块myApp,原因是:错误:[$injector:unp]未知提供程序:r.js优化后出现e错误。这个问题以前不存在。我在这个链接上关注了一个类似的问题,并将mainConfigFile添加到构建文件中,但问题仍然存在。以下是相应文件的代码
build.js
({
mainConfigFile:'js/main.js',
appDir: "./",
baseUrl: "js",
dir: "/home/karthic/optimized-test",
modules: [
{
name: "main"
}
]
})
main.js
require.config({
baseUrl: './js',
paths: {
angular: 'libs/angular-1.2.9',
angularRoute: 'libs/angular-route-1.2.9'
},
shim: {
'angularRoute': {
deps: ['angular'],
exports: 'angularRoute'
},
'angular': {
exports: 'angular'
}
}
});
require(['angular', 'controller', 'ang_when_routes', 'angularRoute'], function(angular, controller, angWhenRoutes, angularRoute) {
'use strict';
var app = angular.module('myApp', ['ngRoute']);
angular.element(document).ready(function() {
angular.bootstrap(document, ['myApp']);
});
angWhenRoutes.initRoutes(app);
controller.controllerInit(app);
});
controller.js
define(function() {
function controllerInit(app) {
console.log('inside func cont');
app.controller('mapApp', function($scope, $http, $location) {
console.log('inside mapp,testing r.js optimizer');
});
}
return {
controllerInit: controllerInit
}
});
ang_when_routes.js
define(function() {
function initRoutes(app) {
app.config(
function($routeProvider, $httpProvider) {
$httpProvider.defaults.withCredentials = true;
$routeProvider.
when('/', {
templateUrl: 'index_content.html',
controller: 'mapApp'
})
});
}
return {
initRoutes: initRoutes
}
});
index.html
<!DOCTYPE html>
<html>
<head>
<title>Optimizer error</title>
<script data-main="js/main.js" src="js/libs/require.js"></script>
</head>
<body>
<div ng-view>
</div>
</body>
</html>
index_content.html
<p>Testing the r optimizer</p>
如果错误可以修复,这对我来说真的很有帮助。
这是@radimKohler在第一条评论中提出的答案。为了避免缩小过程中angularJS出现问题,必须按照Angular文档中的说明使用内联数组注释。这是更改后修改的代码
controller.js
define( function () {
function controllerInit(app) {
console.log('inside func cont');
app.controller('mapApp',['$scope','$http','$location', function ($scope, $http, $location) {
console.log('inside mapp,testing r.js optimizer');
}]);
}
return {
controllerInit: controllerInit
}
});
ang_when_routes.js
define(function(){
function initRoutes(app){
app.config(['$routeProvider','$httpProvider',
function($routeProvider,$httpProvider){
$httpProvider.defaults.withCredentials = true;
$routeProvider.
when('/',{
templateUrl:'index_content.html',
controller:'mapApp'
})
}]);
}
return {
initRoutes:initRoutes
}
});
相关文章:
- 使用 RequireJS 设置 smooch-js
- Requirejs main.js could not be found
- 使用requirejs后如何编写js
- Requirejs+Backbone.js:类型错误:Can't在路由器中传递-路由器不是一个函数
- 将RequireJs与自定义JS插件一起使用
- 在node.js中使用requirejs与amdefine生成未定义的错误
- Twitter Bootstrap js文件已加载,但无法与requirejs一起使用
- 尝试将highlight.js集成到一个使用requirejs的angular应用程序中
- 我可以将RequireJs模块和require.js本身组合成一个js包吗
- 为什么requirejs试图将“.js”附加到加载了!text插件的.jst模板文件中
- 如何使用AngularJS和RequireJS设置Skrollr.js
- Using moment.twitter.js with requirejs
- requirejs 加载超时用于配置.js(优化)
- 如何使用 Django 模板和 RequireJS 缩小 JS
- 在 RequireJs 模块中强调 Js mixins
- RequireJS plugin( order.js )
- 使用数据绑定(KNOCKOUT.js)加载requirejs模块
- 是否可以阻止requireJS自动添加.js文件扩展名
- 如何将 requireJS 配置放在单独的文件中并使 r.js 优化器工作
- RequireJS - 打包与主干相关的模块,以便在其他 Rails/JS 应用程序中重用