import { Component, OnDestroy, OnInit } from '@angular/core'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { InvoiceService } from 'app/main/pages/invoices/invoice.service'; @Component({ selector : 'invoice-compact', templateUrl: './compact.component.html', styleUrls : ['./compact.component.scss'] }) export class InvoiceCompactComponent implements OnInit, OnDestroy { invoice: any; // Private private _unsubscribeAll: Subject; constructor( private _invoiceService: InvoiceService ) { // Set the private defaults this._unsubscribeAll = new Subject(); } // ----------------------------------------------------------------------------------------------------- // @ Lifecycle hooks // ----------------------------------------------------------------------------------------------------- /** * On init */ ngOnInit(): void { this._invoiceService.invoiceOnChanged .pipe(takeUntil(this._unsubscribeAll)) .subscribe((invoice) => { this.invoice = invoice; }); } /** * On destroy */ ngOnDestroy(): void { // Unsubscribe from all subscriptions this._unsubscribeAll.next(); this._unsubscribeAll.complete(); } }