2014-03-05 20 views
0

我使用requirejs-rails來管理Rails 4項目中客戶端模塊之間的依賴關係。define()中的所有模塊都未定義

我的切入點是:

(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] 

我想,在某個地方我有循環引用,所以我刪除所有模塊除了角

(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

一個不好的RequireJS配置可能會導致您正在遇到的情況,但是您沒有在您的問題中顯示RequireJS配置。 – Louis

回答

0

看來,我發現,什麼是錯的。 Angular不支持盒子中的AMD。

我已經配置在requierjs.yml墊片像下面

shim: 
    "angular" : 
    exports : "angular" 

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

和,真厲害!這是工作!