define的用法

提问 已结
22 232
DDean
DDean 2017-12-1
悬赏:20飞吻
版本: 2.X 浏览器:

大概猜的意思是给指定模块声明一个方法 方法的内容是方法 最后里层方法返回的值是调用时候用的值 但是这里的demo指的是什么呢
回帖
  • 小kiss
    2017-12-4
    @DDean

    下面是目录结构

    layui.config({
    base: '/js/' //假设这是你存放拓展模块的根目录
    }).extend({ //设定模块别名
    mymod: 'mymod' //如果 mymod.js 是在根目录,也可以不用设定别名
    });

    //使用拓展模块
    layui.use(['mymod'], function () {
    var mymod = layui.mymod;
    mymod.hello('World!'); //弹出 Hello World!
    });
    1 回复
  • 小kiss
    2017-12-1
    你取的别名 方便调用
    /**
    扩展一个test模块
    **/

    layui.define(function(exports){ //提示:模块也可以依赖其它模块,如:layui.define('layer', callback);
    var obj = {
    hello: function(str){
    alert('Hello '+ (str||'mymod'));
    }
    };

    //输出test接口
    exports('mymod', obj);
    });
    //config的设置是全局的
    layui.config({
    base: '/res/js/' //假设这是你存放拓展模块的根目录
    }).extend({ //设定模块别名
    mymod: 'mymod' //如果 mymod.js 是在根目录,也可以不用设定别名
    });
    //使用拓展模块
    layui.use(['mymod'], function(){
    var mymod = layui.mymod;

    mymod.hello('World!'); //弹出 Hello World!
    });
    0 回复
  • 安xin
    2017-12-1
    定义的模块儿的名称
    0 回复
  • DDean
    2017-12-1
    @小kiss 还是没明白,你的意思是他是调用方法的对象吗(在这里说成模块),比如我通过对象layer.layout()输出信息?
    0 回复
  • DDean
    2017-12-1
    @安xin 说的太简单了 我刚刚学layui懵逼中
    0 回复
  • 安xin
    2017-12-1
    @DDean 相当于说暴露了一个全局的对象
    0 回复
  • 安xin
    2017-12-1
    @DDean 只要加载这个你自己定义的模块儿的话,你就能在全局的去使用
    0 回复
  • DDean
    2017-12-1
    @安xin define的第一个参数就是模块名称 还想问下exports那个参数和那个方法是干什么的 是负责做实现功能的方法吗?
    0 回复
  • 安xin
    2017-12-1
    exports 这个主要是暴露你写的模块儿,将其变成全局.
    0 回复
  • DDean
    2017-12-1
    @安xin 可以加QQ问下你吗
    0 回复
  • 安xin
    2017-12-1
    @DDean 你如果只是用的话,按照官方的文档写就行了
    0 回复
  • DDean
    2017-12-1
    <body>
    <script src="Scripts/layui/layui.js"></script>
    <script>

    layui.define(['layer','laypage'], function (exports) {
    exports('demo', function () {
    alert('Hello World!');
    });
    });


    layui.use(['layer','laypage'], function (){
    var laypage = layui.laypage
    , layedit = layui.layedit;
    layer.demo();
    });
    </script>
    <%--<form id="form1" runat="server">
    <div>
    </div>
    </form>--%>
    </body>
    小姐姐可以看下我这个是为什么不能弹文字出来吗 浏览器报layer.demo()这里有错
    0 回复
  • DDean
    2017-12-1
    @小kiss 麻烦问下 为什么 这段代码执行之后报错 <body>
    <script src="Scripts/layui/layui.js"></script>
    <script>

    layui.define(function (exports) { //提示:模块也可以依赖其它模块,如:layui.define('layer', callback);
    var obj = {
    hello: function (str) {
    alert('Hello ' + (str || 'mymod'));
    }
    };

    //输出test接口
    exports('mymod', obj);
    });

    //使用拓展模块
    layui.use(['mymod'], function () {
    var mymod = layui.mymod;

    mymod.hello('World!'); //弹出 Hello World!
    });

    </script>
    </body>
    这里是报错
    0 回复
  • 小kiss
    2017-12-1
    @DDean

    你还差一个配置路径 不然找不到的
    layui.config({
    base: '/js/' //假设这是你存放拓展模块的根目录
    }).extend({ //设定模块别名
    mymod: 'mymod' //如果 mymod.js 是在根目录,也可以不用设定别名
    });
    这样写 代表 mymod.js 在你 文件js 下面 /js/mymod.js
    0 回复
  • DDean
    2017-12-1
    @小kiss

    还是不对
    0 回复
  • 小kiss
    2017-12-1
    @DDean 你把你写的 代码贴出来 我看下
    0 回复
  • DDean
    2017-12-1
    @小kiss <script>


    layui.define(function (exports) { //提示:模块也可以依赖其它模块,如:layui.define('layer', callback);
    var obj = {
    hello: function (str) {
    alert('Hello ' + (str || 'mymod'));
    }
    };

    //输出test接口
    exports('mymod', obj);
    });

    layui.config({
    base: '/Script/' //假设这是你存放拓展模块的根目录
    });

    //使用拓展模块
    layui.use(['mymod'], function () {
    var mymod = layui.mymod;
    mymod.hello('World!'); //弹出 Hello World!
    });

    </script>
    0 回复
  • DDean
    2017-12-1
    @小kiss 是对我无语了吗 小哥哥
    0 回复
  • 小kiss
    2017-12-4
    @DDean

    配置模版引用有问题 这样才对
    layui.config({
    base: '/Script/' //假设这是你存放拓展模块的根目录
    }).extend({ //设定模块别名
    mymod: 'mymod' //如果 mymod.js 是在根目录,也可以不用设定别名
    });
    0 回复
  • DDean
    2017-12-4
    @小kiss 小哥哥 你能举一个成功的例子给我看下吗 我试了 浏览器里还是有异常
    0 回复
  • 小kiss
    2017-12-4
    @DDean 模版 应该是单独的js
    0 回复
  • DDean
    2017-12-5
    @小kiss 明白了 谢谢
    0 回复