我刚开始使用打字稿。我需要将数据(this.level,this.userData)从父控制器传递到子控制器。在angularjs中,我们将创建服务,但如何在typescript
中实现这一点家长控制器:
export class ParentController {
static $inject: string[] = ['parentService', '$q', 'httpSharedService','$mdDialog'];
private level: IDataModel[];
private userData: any;
private UserRole: boolean = false;
private hasNext: boolean = false;
private hasPrev: boolean = true;
private clickCount: number = 1;
private selectedCard:number = -1;
constructor(private parentService:parentService ,private $q:ng.IQService,
private httpSharedService: httpSharedService, private $mdDialog: ng.material.IDialogService) {
this.$q.all([
this.httpSharedService.useGetHandler('../../../../mockdata/level.json',''),
this.httpSharedService.useGetHandler('../../../../mockdata/getUserInfo.json','')
]).then((params:any) =>{
this.level = params[0]; // this data to be passed to child controller
this.userData = params[1]; // this data to be passed to child controller
if(this.userData.role == 'Power User' && this.userData.type == 'Customer'){
this.UserRole = true;
}
});
}
addDivision(ev: Event) {
this.$mdDialog.show({
clickOutsideToClose: false,
template: require('./child.element.html'),
parent: angular.element(document.body),
hasBackdrop: true,
controller: ChildController,
controllerAs: "popel"
})
}
}
儿童控制器:
export class ChildController {
static $inject: any = ['$mdDialog', 'httpSharedService'];
public divname: any;
public showErrors: boolean = false;
constructor(private $mdDialog: ng.material.IDialogService, private httpSharedService: httpSharedService) {
}
save(){
this.showErrors = true;
alert(this.divname);
}
closeDialog(): void {
this.$mdDialog.cancel();
}
}