Реализация DI c Inversify JS на Vanilla JS
Пытаюсь реализовать свойства зависимостей на Vanilla JS но как то не очень получается. При инициализации класса сервис который я пытаюсь получить приходит как undefined
Класс который регистрирует службы
import { Header } from "../Header/header";
import { HeaderService } from "../Services/header-app-service";
import { Container, decorate, injectable, inject } from "inversify";
import "reflect-metadata";
export class RegisterService {
get getContainer() {
const container = new Container();
container.bind(HeaderService).to(HeaderService).inSingletonScope();
container.bind(Header).to(Header);
container.resolve(Header);
}
}
Класс который принимает службу и тут я получаю в конструкторе undefined
export class Header extends HTMLElement {
constructor(service) {
super();
if (service) {
const headerService2 = service.getData();
}
this.attachShadow({ mode: "open" });
fetch("../CORE/Header/header.html").
then(response => response.text()).then(content => {
this.shadowRoot.innerHTML = content;
this.createMenu(this.shadowRoot);
});
}
}
И вот сама служба
export class HeaderService {
getData() {
return "Hello Wolrd";
}
}
Любое решение буду рад, заранее спасибо!
Источник: Stack Overflow на русском