File

src/app/components/item-details/item-details.component.ts

Metadata

selector app-item-details
styleUrls item-details.component.css
templateUrl ./item-details.component.html

Index

Properties
Methods
Inputs
Outputs

Constructor

constructor(apiService: ApiService, route: ActivatedRoute)

Creates an instance of ItemDetailsComponent.

Parameters :
Name Type Optional
apiService ApiService no
route ActivatedRoute no

Inputs

displayModal

Parametro in ingresso per visualizzare la modal al click

modalItem

Oggetto da visualizzare nella modal

objecttype

Setter per la tipologia di oggetto in ingresso

Type: string

Outputs

onChiudi

Evento mappato in caso di chiusura del dettaglio

$event type: EventEmitter<any>

Methods

Public onHideModal
onHideModal(event: Event)

Reset dei dati sulla chiusura della modal

Parameters :
Name Type Optional
event Event no
Returns : void

Properties

Public customFields
customFields:

Campi da visualizzare nella modal provenienti dalla configurazione del singolo oggetto

Accessors

objecttype
getobjecttype()

Setting del tipo di ogetto passato per identificare i campi necessari per la visualizzazione

Returns : string
setobjecttype(value: string)

Setter per la tipologia di oggetto in ingresso

Parameters :
Name Type Optional
value string no
Returns : void
import { Component, OnInit, Input, EventEmitter, Output } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { ApiService } from '../../services/api.service';
import { StartShipFields } from '../../models/starship.model';
import { VehicleFields } from '../../models/vehicle.model';
import { PlanetFields } from '../../models/planet.model';
import { FilmFields } from '../../models/film.model';
import { PeopleFields } from '../../models/people.model';
import { SpecieFields } from '../../models/specie.model';
@Component({
  selector: 'app-item-details',
  templateUrl: './item-details.component.html',
  styleUrls: ['./item-details.component.css']
})
export class ItemDetailsComponent {
  /**
   * Campi da visualizzare nella modal provenienti dalla configurazione
   * del singolo oggetto
   *
   * @memberof ItemDetailsComponent
   */
  public customFields;

  /**
   * Evento mappato in caso di chiusura del dettaglio
   *
   * @type {EventEmitter<any>}
   * @memberof ItemDetailsComponent
   */
  @Output()
  // tslint:disable-next-line:no-output-on-prefix
  public onChiudi: EventEmitter<any> = new EventEmitter();

  /**
   *Parametro in ingresso per visualizzare la modal al click
   *
   * @memberof ItemDetailsComponent
   */
  @Input()
  public displayModal;

  /**
   *Oggetto da visualizzare nella modal
   *
   * @memberof ItemDetailsComponent
   */
  @Input()
  public modalItem;

  /**
   *Setter per la tipologia di oggetto in ingresso
   *
   * @memberof ItemDetailsComponent
   */
  @Input()
  set objecttype(value: string) {
    if (!value) {
      return;
    }
    switch (value) {
      case 'starship':
        this.customFields = StartShipFields;
        break;
      case 'veichle':
        this.customFields = VehicleFields;
        break;
      case 'film':
        this.customFields = FilmFields;
        break;
      case 'people':
        this.customFields = PeopleFields;
        break;
      case 'planet':
        this.customFields = PlanetFields;
        break;
      case 'specie':
        this.customFields = SpecieFields;
        break;
      default:
        console.log('Spiacenti, non abbiamo ' + value);
    }
    this.displayModal = true;
  }
  /**
   *Setting del tipo di ogetto passato per identificare i campi necessari per la visualizzazione
   *
   * @readonly
   * @type {string}
   * @memberof ItemDetailsComponent
   */
  get objecttype(): string {
    // transform value for display
    return 'null';
  }

  /**
   * Creates an instance of ItemDetailsComponent.
   * @param {ApiService} apiService
   * @param {ActivatedRoute} route
   * @memberof ItemDetailsComponent
   */
  constructor(private apiService: ApiService, private route: ActivatedRoute) {}

  /**
   *Reset dei dati sulla chiusura della modal
   *
   * @param {Event} event
   * @memberof ItemDetailsComponent
   */
  public onHideModal(event: Event) {
    this.displayModal = false;
    this.modalItem = null;
    this.onChiudi.emit(null);
  }
}
<p-dialog (onHide)="onHideModal($event)" width="300" header="{{modalItem?.name}}{{modalItem?.title}}" [(visible)]="displayModal"
  [modal]="true" *ngIf="modalItem" [responsive]=true>

  <p-table [value]="customFields">
    <ng-template pTemplate="body" let-item>
      <tr>
        <td>{{item.label}}</td>
        <td>{{modalItem[item.field]}}</td>
      </tr>
    </ng-template>

  </p-table>
</p-dialog>
Legend
Html element
Component
Html element with directive

results matching ""

    No results matching ""