2013-05-20 88 views
0

我想用微風角度,並requireJS 我怎麼會得到錯誤 未捕獲的錯誤:模塊名稱「ko」尚未加載上下文:_。使用要求([])使用微風角度,並要求

我已經配置

define("breezeConfig", ["breeze"], function(breeze) { 
// configure to use the model library for Angular 
//breeze.config.initializeAdapterInstance({ dataService: "OData" }); 
breeze.config.initializeAdapterInstance("modelLibrary", "backingStore", true); 

// configure to use camelCase 
breeze.NamingConvention.camelCase.setAsDefault(); 

var serverAddress = "/odata/"; 
var manager = new breeze.EntityManager(serverAddress); 
return breeze; 

});

和主模塊

require.config({ 
baseUrl: "/app", 
paths: { 
    "jQuery": "lib/jquery-1.8.2", 
    "angular": "lib/angular", 
    "angular-resource": "lib/angular-resource", 
    "text": "lib/text", 
    "Q": "lib/q", 
    "breeze": "lib/breeze.min" 
and so on 

在端

require([ 
'jQuery', 
'Q', 
'breeze', 
'angular', 
'app', 
'controllers', 
'routes', 
'breezeConfig' 

],功能($,角,應用程序){

angular.element(document).ready(function() { 
    angular.bootstrap(document, ['AMail']); 
}); 

我在哪裏錯在?

+0

瘋狂的猜測,這表明有東西正在尋找KnockoutJS。大概是微風。 'ko'是KnockoutJS默認保存的內容。 –

+0

是的,但基本上你可以改變模型庫 –

回答

2

是的......我們知道。這是reported on S.O. before。我們在路上修復(下一版)。

同時,你的主要模塊內做兩件事情:

1)定義了一個假的淘汰賽模塊

 
define('ko', function() {}); // do nothing 

2)加墊片,以您的require.config功能:

 
... 
shim: { 
     jquery: { exports: '$' }, 
     angular: { exports: 'angular' }, 
     breeze: { deps: ['ko', 'jquery', 'Q'] } 
     } 
... 

即使在我們修復了ko probl之後,您仍然需要墊片(減去'ko'依賴關係!) EM。微風取決於必須首先加載的'jquery'和'Q'。您可能需要也可能不需要其他墊片線。

+0

謝謝,現在工作 –