I am trying to return value from callback function in angular2 service and using that value (return self.globalMenu) in my component but the callback function is not executing and it is throwing "callback function is undefined" error .
It worked properly in Angular 1 and after migrating the code to Angular 2,It stopped working .
Could someone help me out in fixing this error and returning value from callback function in service ?
portalmode.service.ts :
import { Injectable,Inject } from '@angular/core';
@Injectable()
export class MenuViewModelProvider {
globalMenu: any;
constructor(@Inject('DcsPlus.Frame.Logic.portalComponentManager') private portalComponentManager,
@Inject('DcsPlus.Frame.Logic.viewModelProvider') private viewModelProvider) {}
public setMenuCommandItems(mmCommandItems,appId): any {
let self = this;
self.globalMenu = self.getMenu(mmCommandItems);
this.viewModelProvider.register("mmMenu", function () {
return self.globalMenu;
});
}
}
menu.component.ts :
export class MainMenuComponent implements OnInit{
constructor(@Inject('DcsPlus.Frame.Logic.viewModelProvider') private viewModelProvider) {}
mainMenu:any=this;
viewModel:any;
ngOnInit() {
this.viewModelProvider.load('mmMenu').then(function () {
let menu = this.viewModelProvider.get('mmMenu');
this.mainMenu.items = menu.items;
});
}
}