2013-07-24 67 views
3

所以也出現了類似的問題,但我希望得到一個最新的答案。使用微風和requireJS

版本 -

清風:1.4.0 淘汰賽:2.2.1 RequireJS:2.1.5

我試圖與knockoutJS一個requireJS項目加載微風。我們requireJS配置非常簡單 -

require.config({ 
    waitSeconds: 15, 
    paths: { 

     'templates': "/ist-common/templates", 
     'lib': '/ist-common/js/lib', 
     'ist': '/ist-common/js/ist' 
    } 

}); 

所以我裝微風庫到以下目錄結構 -

LIB
----> q.js
---->微風。 debug.js

我試圖定義一個「DataService的」模塊使用的微風,並設置它像所謂

define(['lib/knockout', 'lib/q', 'lib/breeze.debug'], function (ko, Q, breeze) { 


    var serviceName = '/ist/rest'; // route to the endpoint 

    var manager = new breeze.EntityManager(serviceName); 
    manager.enableSaveQueuing(true); 


    var query = new EntityQuery("missions"); 
    manager.executeQuery(query, function(data) { 

     console.log("success"); 

    }); 


}); 

此配置是否可行?我試圖保持我的腳本標籤下降到最低限度,只加載requireJS,然後加載淘汰賽,jquery等,因爲我需要他們在我的模塊定義。

這個配置目前未能與MESSAGE-

Error: Unable to initialize Q. See https://github.com/kriskowal/q

編輯*

我能得到它具有以下配置的需要加載Q,但是這種感覺是錯誤的。爲什麼我應該設置window.Q?我不應該能夠將Q作爲命名模塊訪問嗎?

var require = { 
    waitSeconds: 15, 
    deps: ["/ist-common/js/lib/q.js"], 
    callback: function(Q){ 
     window.Q = Q; 
    }, 
    paths: { 

     'templates': "/ist-common/templates", 
     'lib': '/ist-common/js/lib', 
     'ist': '/ist-common/js/ist' 
    } 

}; 
+0

哪個版本是您使用自己定義爲「jQuery的」? (微風) –

+0

用版本編輯 - 微風:1.4.0淘汰賽:2.2.1需求:2.1.5 – thebringking

回答

1

您還需要微風墊片(從Using Angular with breeze and require

breeze: { 
    deps: ['ko', 'jquery', 'Q'] 
}, 

這是因爲需要雖然微風確實定義它本身沒有定義它的依賴,它只是希望他們在那裏(RequireJs不能解釋它是依賴於變量而不是字符串?)。

墊片也是必需的,因爲微風請求「jQuery的」,但jQuery代碼