我使用requirejs-rails来管理Rails 4项目中客户端模块之间的依赖关系。
我的切入点是:
(function (define, undefined) {
'use strict';
var mainModule = function(angular, routingConfiguration, controllers) {
var restaurantsApp = angular.module('RestaurantsApplication', ['ui.router'])
.config(routingConfiguration);
angular.forEach(controllers, function(controller, name){
restaurantsApp.controller(name, controller);
});
};
define(['angular', 'application/routing-configuration',
'controllers', 'angular-ui-router'],
mainModule );
})(window.define);
但是在define函数中“注入”的每个模块都是未定义的。 我的意思是,如果我在内部定义函数
console.log(arguments)
我收到了
[undefined, undefined, undefined, undefined]
我想,在某个地方我有循环引用,所以我删除了除了angular
之外的所有模块(function (define, undefined) {
'use strict';
var mainModule = function(angular) {
var restaurantsApp = angular.module('RestaurantsApplication', []);
};
define(['angular'],
mainModule );
})(window.define);
但我得到相同的结果:角度未定义。
更新
requirejs.yml
paths:
"angular" : "angular"
"angular-ui-router" : "angular-ui-router.min"
modules:
- name: 'entry-point'
答案 0 :(得分:0)
似乎,我发现,出了什么问题。 Angular并不支持AMD。
我在requierjs.yml中配置了 shim ,如下所示
shim:
"angular" :
exports : "angular"
"angular-ui-router":
exports : "angular-ui-router"
deps : "angular"
而且,呜呜!它正在运作!