import { Component, OnInit } from '@angular/core'; import { Router, ActivatedRoute, ParamMap, Params } from '@angular/router'; import {Location} from '@angular/common'; import { ServerService } from '../../../app/services/server.service'; import '../../../assets/perfect-scrollbar/perfect-scrollbar.js'; declare var PerfectScrollbar : any; declare var $ :any; @Component({ selector: 'project-detailed', templateUrl: './project-detailed.component.html', styleUrls: [ '../../../assets/perfect-scrollbar/perfect-scrollbar.css', './project-detailed.component.css' ] }) export class ProjectDetailedComponent implements OnInit { constructor(private serverService: ServerService, private router: Router, private _location: Location, private route: ActivatedRoute) { } users : Map = new Map(); project : any; ngOnInit() { let sub = this.route.queryParams.subscribe(params => { let projectid = params.projectid; this.serverService.getProject(projectid).subscribe( (response:any) => { this.project = response; $('#project-details-modal').modal('show'); //get also projects of dmp (there's a problem with the List<> serialization on server - side) this.serverService.getDmpsOfProject(projectid).subscribe( response => { this.project.dmps = response; this.populateUsersMap(this.project); //this.get }, error => { console.log("Could not fetch project's dmps"); } ) }, error => { console.log("Could not load project"); } ) }); var projectDetailsModalScroller = new PerfectScrollbar("#project-modal-content"); } getUserByID(userid: string){ return this.serverService.getUserByID(userid); //Notice: returns Observable ! } async populateUsersMap1(project){ this.users.clear(); for(var i=0;i { if(!this.users.has(dmp.creator)){ this.serverService.getUserByID(dmp.creator).subscribe( (user:any) => { this.users.set(dmp.creator, user.name); }, error => { } ) console.log("USERS: "+JSON.stringify(this.users)) } }); } }