我正在用RequireJS來使用AngularJS。AngularJS + RequireJS不能正常工作
新問題: RequireJS不加載任何控制器。 我正在使用this tutorial。
老問題: RequireJS加載main.js文件,該文件bootstrap.min.js和jQuery。這很好。 但由於某些原因,它不會加載角度。
我正在使用chrome,而在開發者工具選項卡「network」中只有上面提到的3個文件加載。
console.log(typeof angular);
等於undefined
。 (我曾在開發者控制檯中試過)
控制檯中沒有顯示錯誤消息!
解決方案:我通過給deps
陣列添加'角度'來修復它。
我main.js
代碼: //要求JS配置
require.config({ // Code format changed
// alias library paths
paths: {
'jquery': '../bower_components/jquery/dist/jquery.min',
'domReady': '../bower_components/requirejs-domready/domReady',
'angular': '../bower_components/angular/angular.min',
'angular-route': '../bower_components/angular-route/angular-route.min',
'ngFx': '../bower_components/ngFx/dist/ngFx.min',
'angular-ui-router': '../bower_components/angular-ui-router/release/angular-ui-router.min',
'bootstrap': '../bower_components/bootstrap/dist/js/bootstrap.min'
},
// angular does not support AMD out of the box, put it in a shim
shim: {
'angular': {
exports: 'angular'
},
'angular-route': {
deps: [ "angular" ]
},
'ngFx': {
deps: [ "angular" ]
},
'angular-ui-router': {
deps: [ "angular" ]
},
'bootstrap': {
deps: [ "jquery" ]
}
},
// Kick start application
deps: [
'./bootstrap',
'domReady',
'angular',
'angular-route',
'ngFx',
'angular-ui-router',
'bootstrap'
]
});
我bootstrap.js
文件:
define([
'require',
'angular',
'app',
'routes'
], function (require, ng) {
'use strict';
require(['domReady!'], function (document) {
ng.bootstrap(document, ['app']);
});
});
我app.js
文件:
define([
'angular',
'./controllers/index',
'./directives/index',
'./filters/index',
'./services/index'
], function (ng) {
'use strict';
return ng.module('app', [
'app.services',
'app.controllers',
'app.filters',
'app.directives',
'ngFx',
'ngRoute'
]).config(function ($urlRouterProvider) {
$urlRouterProvider.otherwise('/');
});
});
文件夾結構:
angular
controllers
index.js
menu.js
module.js
directives
filters
services
app.js
bootstrap.js
main.js
routes.js
bower_components
...
謝謝你的幫忙! :-)
'後'angular''成'deps'陣列中的' 添加'/ bootstrap'' – Evgeniy 2014-10-10 07:12:38
你不必要定義多個'exports'屬性角。唯一你需要的是'角',擺脫其餘的。 – miqid 2014-10-10 07:43:22