Chr*_*gel 13 javascript module amd requirejs
我目前正在为我们的一个项目创建RESTful API,并且还想提供一个Javascript库来访问它.
由于我喜欢AMD原理并使用require.js,我也会提供AMD模块.问题是:模块的初始化需要一些信息,比如初始化时的API密钥.
如何在初始化时将这些参数传递到模块中?
ggo*_*zad 14
如果你有类似的东西:
define(['dep1', 'dep2', 'dep3'], function (dep1, dep2, dep3) {
var module = {
...
};
return module;
});
Run Code Online (Sandbox Code Playgroud)
将其更改为:
define(['dep1', 'dep2', 'dep3'], function (dep1, dep2, dep3) {
var module = {
...
};
var init = function (options) {
// Initialize here
return module;
};
return init;
});
Run Code Online (Sandbox Code Playgroud)
然后在某个地方需要你的模块后,你可以调用它来初始化.如果您需要更复杂的东西并返回工厂,您可能还需要查看工厂模式.
require.js不会限制你返回的内容.它可以是一个简单的对象,一个字符串,一个函数......
我不认为你可以使用 require.js 做到这一点,但你可以使用Frame.js或其他一些模块库。在 Frame 中你可以这样做:
//moduleName.js
(function(exports){
exports.moduleName = function(args){
// do stuff
}
})(window.exports);
// in main js file
var exports = {}; // global variable
Frame('moduleName.js');
Frame(function(next){
var myArgs = { ... settings ... };
exports.moduleName(myArgs);
next();
});
Frame.init();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28857 次 |
| 最近记录: |