我试图从angular2服务中的回调函数返回值,并在我的组件中使用该值(返回self.globalMenu),但回调函数没有执行,它正在抛出"回调函数未定义"错误。
它在Angular 1中正常工作,在将代码迁移到Angular 2之后,它停止了工作。
有人可以帮我修复此错误并从服务中的回调函数返回值吗?
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;
});
}
}