Как использовать (глобальную) переменную из модуля внутри функции готовности документа jQuery?

В соответствии с вопросом SO Глобальная переменная javascript внутри document.ready, я должен иметь возможность использовать глобальные переменные внутри функции готовности документа jQuery. Как я могу сделать то же самое, когда моя переменная объявлена ​​внутри модуля?

<script type="module">
        import settings from './config/settings.js';
        var DAPP_VERSION = settings.version;
</script>
<script type="text/javascript">
var OTHER = 4;
</script>
<script type="text/javascript">
        $(document).ready(function() {
        console.log(OTHER);
        console.log(DAPP_VERSION);
    }); 
</script>

Вышесказанное дает мне:

Uncaught ReferenceError: DAPP_VERSION не определено

config/setting.js содержит:

export default {
    version: "1.1",
    rounds: 3,
    cars: 20,   
    lapLenght: "short"
}

1 ответ

Решение

Когда вы используете type="module" объявление переменных не привязываются к глобальной области видимости автоматически, а к области видимости модуля (это отличается).

Вы должны прикрепить их явно к окну, чтобы избежать двусмысленности и сделать их видимыми во всем приложении.

window.DAPP_VERSION = settings.version;

http://jsfiddle.net/R6FNs/572/

Другие вопросы по тегам