我用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类污染窗口命名空间感觉就像放弃了类加载器的好处.
你会怎么处理这个?当然,有关采取不同方法的建议也是值得欢迎的。
发布于 2017-06-13 09:08:17
在捆绑的javascript范围之外,您的Service类是不可用的。因此,您可能希望将其设置为global,并且可以通过将其附加到窗口对象中来实现。
// Service.js
class Service {
constructor() {
//
}
someMethod(data) {
//
}
}
window.Service = Service;
export default Service;
// usage
let myService = new Service();
https://stackoverflow.com/questions/44516242
复制相似问题