Я использую Webpack для перевода моих классов ES6. Скажем, есть класс Service
внутри пакета, который может быть импортирован другими связанными скриптами.
class Service {
constructor() {
//
}
someMethod(data) {
//
}
}
export default Service;
Теперь у меня есть крошечный встроенный скрипт в теле HTML (псевдо-код ниже), который должен вызвать метод в этом классе Service
с данными, которые вставлены на сервер, используя механизм шаблонов, такой как Twig или Blade. Конечно, создание нового объекта Service
не будет работать...
<body>
...
<script>
var data = {{ $json_server_data }};
var service = new Service;
Service.someMethod(data);
</script>
</body>
Мне бы очень хотелось, чтобы данные сервера были доступны в виде строки, поскольку это предотвращает дополнительный асинхронный вызов. И загрязнение пространства имен Service
классом Service
похоже на отбрасывание преимуществ загрузчика классов...
Как бы вы справились с этим? Разумеется, также приветствуются предложения о выборе другого подхода.
Класс Service не будет доступен за пределами встроенного javascript. Поэтому вы, вероятно, хотите сделать его глобальным, и вы можете сделать это, связав его с объектом окна.
// Service.js
class Service {
constructor() {
//
}
someMethod(data) {
//
}
}
window.Service = Service;
export default Service;
// usage
let myService = new Service();