Как использовать (глобальную) переменную из модуля внутри функции готовности документа 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;