Надеюсь, у вас все хорошо, я столкнулся с небольшой проблемой, когда хотел разработать приложение для Angular, и мне хотелось именно вернуть список элементов «Меню» моей серверной части, чтобы использовать его в моем приложении.
Проблема в том, что когда я использую метод get, чтобы вернуть данные, эти данные возвращаются в конец выполнения, я заметил эту деталь, когда хотел зарегистрировать объекты, которые я привел из backEndв консоли.
Как вы можете видеть, когда я регистрирую объект MenuItem в конструкторе или в методе Onint (), я получаю пустой объектно когда я регистрирую этот объект в классе обслуживания, я получаю объект menuTtem, поэтому я понимаю, что OnInit и Construtor выполняются первыми и следуют за методом http, а вторыми.
У меня такой вопрос: есть лиспособ восстановить данные, не попадая в эту проблему?
вот мой конструктор в menu.component:
constructor(public appSettings: AppSettings, public menuService: MenuService) {
this.settings = this.appSettings.settings;
this.menuItems = this.menuService.getVerticalMenuItems();
console.warn('this.menuItems in the construtor', this.menuItems)
}
и getMeМетод nuItems () моей службы Menu.service
public getMenuItems(): Menu[] {
this.http.get<Menu[]>(this.url + 'all').subscribe(
data => { this.menudata = data
console.warn('this.menudata in Service', this.menudata)
}
)
return this.menudata ;
}
Если есть какие-либо предложения, не стесняйтесь.
Спасибо!