File

src/lib/help/help.directive.ts

Metadata

selector [plHelp]

Constructor

constructor(view: ViewContainerRef, nextRef: TemplateRef>, changes: ChangeDetectorRef, plexHelp: PlexHelpComponent)

Properties

Private closeSubscription
closeSubscription: Subscription
Private openSubscription
openSubscription: Subscription
import { Directive, TemplateRef, ViewContainerRef, OnDestroy, OnInit, ChangeDetectorRef } from '@angular/core';
import { Subscription } from 'rxjs';
import { PlexHelpComponent } from './help.component';

export interface ObserveContext<T> {
    $implicit: T;
    observe: T;
}

export interface ErrorContext {
    $implicit: Error;
}

@Directive({
    // tslint:disable-next-line:directive-selector
    selector: '[plHelp]'
})
export class HelpDirective<T> implements OnDestroy, OnInit {
    private openSubscription: Subscription;
    private closeSubscription: Subscription;

    constructor(
        private view: ViewContainerRef,
        private nextRef: TemplateRef<ObserveContext<T>>,
        private changes: ChangeDetectorRef,
        private plexHelp: PlexHelpComponent
    ) { }


    ngOnDestroy() {
        this.openSubscription.unsubscribe();
        this.closeSubscription.unsubscribe();
    }

    ngOnInit() {
        this.openSubscription = this.plexHelp.open.subscribe(() => {
            this.view.clear();
            this.view.createEmbeddedView(this.nextRef);
            this.changes.markForCheck();
        });

        this.closeSubscription = this.plexHelp.close.subscribe(() => {
            this.view.clear();
            this.changes.markForCheck();
        });
    }

}

results matching ""

    No results matching ""