鍍金池/ 問答/PHP  HTML/ 如何在html中加載requirejs自定義模塊

如何在html中加載requirejs自定義模塊

在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方法中去實現業(yè)務邏輯,這樣感覺main.js會越來越臃腫。

請問實現這樣的效果,還有什么更好的辦法嗎?

回答
編輯回答
拮據

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

<script type="text/javascript">//這里輸出common is not defined
    require(['common'],function(common){
        console.log(common);
    });
</script>
2018年3月17日 12:57