2015-09-04 173 views
-2

我有一個名爲ui.js的JS文件,其中的一個函數做了一些事情。這個文件看起來像這樣Javascript功能超出範圍 - 要求js

define(function (require) { 
    function someName(param1, param2, param3) { 
    ...... 
    }; 
} 

在另一個JS文件,我把我所有的JS文件,像這樣:

define(function (require) { 
    var $ = require('jquery'); 
    var functionName = require('ui'); 

    $(function() { 

    function one() { 
     ..... 
     someName(value1, value2, value3); 
    } 
    }); 
}); 

功能,一個工程沒有錯誤,但是當我調用其內部功能someName,那麼我得到一個錯誤someFunction沒有定義。我必須超出範圍,但我不知道如何使這個工作。我試圖在someName函數的外部和內部使用console.log,並從外部獲取日誌,但不從內部獲取日誌。有任何想法嗎?

/////編輯 我輸錯在這裏,我有右括號在我的代碼

+0

我想你在你的第二個代碼中缺少一個'});'。可能只是一個複製/粘貼問題。你會看到它,如果你格式化的代碼。 – Andy

+0

'&'不是有效的變量名稱! –

+0

ups,對不起,應該是$ –

回答

0

我猜你正在尋找這樣的:

ui.js

define(function() { 
    return function(param1, param2, param3) { 
    ... 
    }; 
} 

someOtherModule.js

define(["jquery", "ui"], function($, ui) { 
    $(function() { 
    ... 
    ui(v1, v2, v3); 
    }); 
}); 

如果ui.js應提出幾種方法:

ui.js

define(function() { 
    return { 
    f1: function() { 
     ... 
    }, 
    f2: function() { 
     ... 
    } 
    }; 
} 

someOtherModule.js

define(["jquery", "ui"], function($, ui) { 
    $(function() { 
    ... 
    ui.f1(); 
    ui.f2(); 
    }); 
}); 
+0

謝謝!你的前兩個街區完成了這項工作。 –

+0

@gogo_rulez很高興我可以幫助:)但我建議你閱讀[RequestJS API](http://requirejs.org/docs/api.html),相當完整和有教育意義。 – sp00m