Импортирующий модуль с литералами шаблона внутри может обращаться только к глобальным переменным. Как получить доступ к переменной из класса?
template.js (класс таргетинга)
export var literal = {
base: `<h1>${ foo.copy.ternary }</h1>
<div>${ foo.copy.title }</div>
`
}
index.html (В приведенном ниже примере я получаю ReferenceError: Не могу найти переменную )
<!DOCTYPE html>
<html>
<body>
<div id=host></div>
</body>
<script type="text/javascript">
class Foo {
constructor() {
this.copy = {
title: 'Discovering Template Literals',
subtitle: 'Effortless client-side rendering awaits.',
body: 'You will never want to go back to normal strings again.',
ternary: 'Ternary Condition'
};
};
};
</script>
<script type="module">
let foo = new Foo();
import * as templates from './templates.js'
document.getElementById( "host" ).innerHTML = templates.literal.base;
</script>
</html>
template.js
export var literal = {
base: `<h1>${ copy.ternary }</h1>
<div>${ copy.title }</div>
`
}
index.html ( работа с глобальной переменной )
<!DOCTYPE html>
<html>
<body>
<div id=host></div>
</body>
<script type="text/javascript">
var copy = {
title: 'Discovering Template Literals',
subtitle: 'Effortless client-side rendering awaits.',
body: 'You will never want to go back to normal strings again.',
ternary: 'Ternary Condition'
};
</script>
<script type="module">
import * as templates from './templates.js'
document.getElementById( "host" ).innerHTML = templates.literal.base;
</script>
</html>