主要参数为requireJS和data-main

我想知道有没有办法使用data-main参数将参数传递给requireJS.
<script data-main="Main"  src="lib/require/require.js"></script>

我可以介绍全局变量

<script>
    var mainId = "Main";
    var mainTarget = "body";
</script>
<script data-main="Main"  src="lib/require/require.js"></script>

但我想知道是否有更干净的方式来做到这一点.谢谢!

编辑:

西蒙,这是一个伟大的计划,我认为mainTarget的价值.

require([
    'plugins/load!./'+mainId+'.htm','plugins/load!./'+mainId+'.css'
],function(html,css){
    var Main = function(){
        this.__proto__ = mainTarget;
    }
    new Main();
}

如何将它应用于mainId?

解决方法

实现此目的的一个方法是创建一个全局或通用模块,并将其用作依赖关系:

global.js

define({
    foo: 'test',bar: 'red'
});

使用全局:

require(['global'],function(global) {
    console.log(global.foo) // 'test'
});

这依赖于保存在JS文件中的全局对象属性.
将数据从服务器端输出到HTML页面中的JS对象也是一种常见的模式.要做到这一点,只需给你的模块一个名字.

<head>
    <script>
        define('global',{
            mainId: 'Main',mainTarget: 'body' 
        })
    </script>
</head>

main.js

require(['global'],function(global) {
    console.log(global.mainId) // 'Main'
});

如果定义一个需要全局属性的模块,只需将全局模块设置为依赖关系即可.

您还可以使用优先级配置选项来确保在其他任何事情之前加载全局模块 – http://requirejs.org/docs/api.html#config

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...