requirejs动态调用自定义模块
requirejs dynamically calling custom modules
我正在尝试根据数据属性动态加载自定义模块。它几乎可以完美运行,但由于某些原因,我的模块被调用了两次,路径不同,我不知道为什么。
我的项目结构如下所示:
+ Assets
+ js
• main.js
+ libs
+ modules
• mod.env.js
• mod.utils.js
• mod.session.js
+ plugins
+ views
• signup.js
• login.js
• home.js
在我的 main.js 文件中,我有一些基本配置:
require.config({
baseUrl: '/Assets/js',
paths: {
// Libs
'jquery' : 'libs/jquery/jquery-2.0.3.min',
// Module for the project
'env': 'modules/atmco.env',
'utils': 'modules/atmco.utils',
'session': 'modules/atmco.session'
}
});
我还在 main.js 文件中放置了模块的条件加载逻辑:
require(['require', 'jquery','env'],
function ( require, $, env ) {
'use strict';
function init() {
// Grab the modules/pages on the data attribute of the body
var modules = $('body').data('modules') || '';
var pages = $('body').data('page') || '';
// Initialize the environment stuff for your project
env.initEnv();
if ( pages ) {
require(['./views/' + pages.toLowerCase().split(/\s*,\s*/)[0]]);
}
}
// Initialize the application when the dom is ready
$(function () {
init();
});
}
);
我的页面具有正确的属性 (<body data-page="Signup" data-module="">
) 但由于某些原因 requirejs 尝试调用 2 个不同的文件:
自定义模块如期调用
"/Assets/js/观看次数/signup.js"
然后它尝试调用不存在的“/Assets/js/signup.js”
最后,看一下我是如何定义我的自定义模块的,包括自定义名称。看起来很基本:
define('view/signup',
['utils'],
function ( utils ) {
console.log('my module' + utils.lang );
return {
};
}
);
如果有人能指出我的错误,那将真正帮助我改进我的应用程序并更好地理解 requirejs 的工作原理。非常感谢!
找到解决方案:
命名(或实际上命名)模块实际上是在扰乱模块定义。因此我只需要将代码调整为:
define(
['utils'],
function ( utils ) {
console.log('my module' + utils.lang );
return {
};
}
);
这个问题真的帮我弄明白了:
Requirejs function in define not executed
我正在尝试根据数据属性动态加载自定义模块。它几乎可以完美运行,但由于某些原因,我的模块被调用了两次,路径不同,我不知道为什么。
我的项目结构如下所示:
+ Assets
+ js
• main.js
+ libs
+ modules
• mod.env.js
• mod.utils.js
• mod.session.js
+ plugins
+ views
• signup.js
• login.js
• home.js
在我的 main.js 文件中,我有一些基本配置:
require.config({
baseUrl: '/Assets/js',
paths: {
// Libs
'jquery' : 'libs/jquery/jquery-2.0.3.min',
// Module for the project
'env': 'modules/atmco.env',
'utils': 'modules/atmco.utils',
'session': 'modules/atmco.session'
}
});
我还在 main.js 文件中放置了模块的条件加载逻辑:
require(['require', 'jquery','env'],
function ( require, $, env ) {
'use strict';
function init() {
// Grab the modules/pages on the data attribute of the body
var modules = $('body').data('modules') || '';
var pages = $('body').data('page') || '';
// Initialize the environment stuff for your project
env.initEnv();
if ( pages ) {
require(['./views/' + pages.toLowerCase().split(/\s*,\s*/)[0]]);
}
}
// Initialize the application when the dom is ready
$(function () {
init();
});
}
);
我的页面具有正确的属性 (<body data-page="Signup" data-module="">
) 但由于某些原因 requirejs 尝试调用 2 个不同的文件:
自定义模块如期调用 "/Assets/js/观看次数/signup.js"
然后它尝试调用不存在的“/Assets/js/signup.js”
最后,看一下我是如何定义我的自定义模块的,包括自定义名称。看起来很基本:
define('view/signup',
['utils'],
function ( utils ) {
console.log('my module' + utils.lang );
return {
};
}
);
如果有人能指出我的错误,那将真正帮助我改进我的应用程序并更好地理解 requirejs 的工作原理。非常感谢!
找到解决方案:
命名(或实际上命名)模块实际上是在扰乱模块定义。因此我只需要将代码调整为:
define(
['utils'],
function ( utils ) {
console.log('my module' + utils.lang );
return {
};
}
);
这个问题真的帮我弄明白了: Requirejs function in define not executed