0

我使用 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);

但是在定义函数中“注入”的每个模块都是未定义的。我的意思是,如果我在定义函数内部调用

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);

但我得到相同的结果:角度未定义。

更新

需要js.yml

paths:
  "angular"           : "angular"
  "angular-ui-router" : "angular-ui-router.min"

modules:
  - name: 'entry-point'
4

1 回答 1

0

看来,我发现,出了什么问题。Angular 不支持 AMD。

我已经在 requierjs.yml 中配置了垫片,如下所示

shim:
  "angular" :
    exports : "angular"

  "angular-ui-router":
    exports : "angular-ui-router"
    deps : "angular"

而且,呜呼!这是工作!

于 2014-03-06T06:09:09.723 回答