Можно ли объединить две модели / массивы и показать их с * ngFor в angular 6? - PullRequest
0 голосов
/ 31 октября 2018

Я получаю данные с сервера:

ngOnInit() {
    this.projectsService.getAllProjects().subscribe(data =>{
      this.projectshowAll = data.project;

    });
  this.projectteamsService.getAllTeams().subscribe(data =>{
    this.teamshowAll = data.projectteams;
  });

и я использую angular-mgl-timeline package

<mgl-timeline  [toggle]="toggle" [alternate]="alternate">
      <mgl-timeline-entry *ngFor="let proj of projectshowAll; let i = index; " (expand)="onExpandEntry($event, i)">
        <mgl-timeline-entry-header  (click)="onHeaderClick($event)">
          <div   class="headerTitle">Project: {{proj.projectname}}</div>
        </mgl-timeline-entry-header>
        <mgl-timeline-entry-content>
          <div class="headerTitle">
            <div>{{proj.projectnumber}}</div>
            <div>{{proj.projectteams}}</div>
            <div>{{proj.createdBy}}</div>
          </div>
        </mgl-timeline-entry-content>
        <mgl-timeline-entry-dot [class]="color ? 'primary' : 'accent'" 
                                [size]="size"
                                (click)="onDotClick($event)"></mgl-timeline-entry-dot>
        <mgl-timeline-entry-side  class="datestyle">Created by: {{proj.createdBy}} At: {{proj.completiondate | date:'MMM dd, yyyy' }} </mgl-timeline-entry-side>
      </mgl-timeline-entry>
    </mgl-timeline>

В данный момент я могу получить массив «projectshowAll», и я хочу, чтобы оба «projectshowAll» + «teamshowAll» и при создании нового проекта или команды попадали в верхнюю часть временной шкалы.

enter image description here

Я искал все и не могу найти ничего, что работает в angular 6, Спасибо за ваше время

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

Я не уверен, что такое angular-mgl-timeline, но, похоже, вы спрашиваете, как объединить два массива. Что довольно просто, используя Array.prototype.concat() функции. Readmore

Если вы хотите объединить массив в шаблон, вы можете сделать это:

*ngFor="let proj of projectshowAll.concat(teamshowAll);
0 голосов
/ 31 октября 2018

Это довольно просто в TypeScript, если вы хотите объединить массив.

finalArray = [];

ngOnInit() {
    this.projectsService.getAllProjects().subscribe(data =>{
      this.projectshowAll = data.project;
      this.finalArray.push(...this.projectshowAll);

    });
  this.projectteamsService.getAllTeams().subscribe(data =>{
    this.teamshowAll = data.projectteams;
    this.finalArray.push(...this.teamshowAll);
  });
...