2014-02-11 67 views
0

我正在嘗試在我的應用程序中使用RequireJS。我包括cdnjs的requirejs這樣的腳本:RequireJS - 使用模塊返回undefined

<script src="//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script> 

我的網頁上我有一個按鈕,我註冊一個事件是:

$('#btnSpeedTest').on('click', function (e) { 
    require([baseUrl + 'Content/js/tools/speedtest.js'], function (speedTestModule) { 
     alert(speedTestModule); 
    }); 
}); 

如果我看有菲德勒 - 我看到了點擊按鈕加載speedtest.js。

speedtest.js包含以下內容:

define('speedTestModule', function() { 
    function SpeedTest(settings, startNow) { 
     // basic initialization 
    } 

    var fn = SpeedTest.prototype; 

    fn.startRequest = function (download, twoRequests) { 
     // logic 
    } 

    return SpeedTest; 
}); 

alert(speedTestModule);命令返回 「不確定」。我看到一個關於RequireJS的教程,並且在這個教程中,所有的東西都在同一個目錄中,以及具有模塊名稱的文件(從我從CDN加載它之後,這不是我的情況)。

我甚至試圖返回一個簡單的字符串,但它沒有工作。我錯過了什麼?

感謝

回答

1

不要使用命名define。取而代之的是:

define('speedTestModule', function() { 

做到這一點:

define(function() { 

,讓RequireJS命名模塊。當你優化它們時,你通常想讓r.js爲你的模塊添加名字。有幾種情況可以在define調用中使用自己的名字,但這些確實是特殊情況。