如何在html中加载requirejs自定义模块

发布于 2022-09-06 12:48:19 字数 1135 浏览 12 评论 0

在thinkphp的index.html中,加载了requireJS,requireJS加载了自定义模块。请问如何在前台HTML页面中调用自定义模块里的属性或方法。

index.html

<script src="/Public/vendor/require/require.js" data-main="/Public/main.js"></script>
<a id="a">按钮</a>
<script type="text/javascript">//这里输出common is not defined
    console.log(common);
</script>

main.js

requirejs.config({
    baseUrl:'/Public/',
    paths:{
        'jquery':'vendor/jquery/jquery',
        'common':'myjs/common'
    },
     shim: {
         'jquery':{
             'exports':"jQuery"
         }
    }
});

require(['jquery','common'],function($,common){
    $('#a').click(function() {
        console.log(common.username);
    });
});

common.js

define(['jquery'],function($){
    return ({
    username:'AAA'
    });
});

——————————————————————————————————————————
请问如何在index.html中调用自定义模块common.js里的属性或者方法?
我是想把一些类似ajax的基本操作,封装到common.js中,在不同的前台页面里,调用common.js中的各种方法使用。
现在好像只能在main.js中加载common模块,然后在整个require方法中去实现业务逻辑,这样感觉main.js会越来越臃肿。

请问实现这样的效果,还有什么更好的办法吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

等风来 2022-09-13 12:48:19

不是只能在main.js里调用,是只能在define方法里调用,你可以在index.html里写:

<script type="text/javascript">//这里输出common is not defined
    require(['common'],function(common){
        console.log(common);
    });
</script>
初见你 2022-09-13 12:48:19

那这两个方法那个更实用呢

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文