2013-11-02 93 views
0

我正在嘗試使用RequireJS在瀏覽器中使用require()函數。對於上下文,我正在嘗試使用Lob API的節點封裝器:https://github.com/hisankaran/lob-node如何在瀏覽器中使用require

下面是相關代碼:

define (function (require) { 
     var LOB = require('lob'); 
     LOB = new LOB(API_KEY); 
    }) 
    // var LOB = new (require('lob')) (API_KEY); 
    console.log('Success?') 

它成功運行,但是當我嘗試實際調用任何東西,例如LOB.bankaccounts.create,它說沒有定義LOB。

高球文檔建議我做簡單:

var LOB = new (require('lob')) (LOB_API_KEY); 

,但我一直得到該模塊還沒有被加載在這裏(http://requirejs.org/docs/errors.html#notloaded)描述的上下文錯誤,所以我想從上面的語法RequireJS網站。

我對RequireJS(和一般編碼)超級新手,所以我可能只是在做一些愚蠢的事情。

+0

如果你是使用chrome,請查看開發工具中的網絡選項卡。是否所有文件都按照預期要求和交付,或者您是否獲得了404或根本沒有任何請求? – pax162

回答

2

define()函數必須實際返回它定義的對象。

此外,在瀏覽器require()應該異步使用,因爲同步調用只有在模塊已被加載時才起作用。

話雖這麼說,我如下會調整你的代碼:

define(['lob'], function(LOB){ 
    return new LOB(API_KEY); 
}); 

將在某些模塊定義,將其加載到主模塊,例如,像這樣的

require([ 'myLob' ], function(myLob){ 
// do something with myLob 
});