File

projects/rebirth-ng/src/lib/modal/modal-content.component.ts

Implements

OnDestroy

Metadata

exportAs modalContent
selector re-modal-content

Index

Properties
Methods

Constructor

constructor(modalContentContainer: ViewContainerRef, injector: Injector, componentFactoryResolver: ComponentFactoryResolver)
Parameters :
Name Type Optional
modalContentContainer ViewContainerRef no
injector Injector no
componentFactoryResolver ComponentFactoryResolver no

Methods

addContent
addContent(options: ModalOptions, dismiss: EventEmitter)
Type parameters :
  • T
Parameters :
Name Type Optional
options ModalOptions no
dismiss EventEmitter<any> no
Returns : void
Private handleResolve
handleResolve(options: ModalOptions, instance: Modal)
Parameters :
Name Type Optional
options ModalOptions no
instance Modal no
Returns : void
ngOnDestroy
ngOnDestroy()
Returns : void

Properties

modalContentRef
modalContentRef: ComponentRef<Modal>
Type : ComponentRef<Modal>
import {
  Component,
  ComponentRef,
  ViewContainerRef,
  Injector,
  OnDestroy,
  EventEmitter,
  ComponentFactoryResolver
} from '@angular/core';
import { ModalOptions } from './modal-options.model';
import { Modal } from './modal.model';

@Component({
  selector: 're-modal-content',
  template: '',
  exportAs: 'modalContent'
})
export class ModalContentComponent implements OnDestroy {

  modalContentRef: ComponentRef<Modal>;

  constructor(private modalContentContainer: ViewContainerRef, private  injector: Injector,
              private componentFactoryResolver: ComponentFactoryResolver) {

  }

  addContent<T>(options: ModalOptions, dismiss: EventEmitter<any>) {
    const componentFactoryResolver = options.componentFactoryResolver || this.componentFactoryResolver;
    const componentFactory = componentFactoryResolver.resolveComponentFactory(options.component);
    this.modalContentRef = this.modalContentContainer
      .createComponent(componentFactory, this.modalContentContainer.length, options.injector || this.injector);
    const instance: Modal = this.modalContentRef.instance;
    instance.dismiss = dismiss;
    this.handleResolve(options, instance);
  }

  ngOnDestroy(): void {
    this.modalContentRef.destroy();
  }

  private handleResolve(options: ModalOptions, instance: Modal) {
    const resolve = options.resolve || {};
    if (resolve.then) {
      resolve.then(data => instance.context = data);
    } else if (resolve.subscribe) {
      resolve.subscribe(data => instance.context = data);
    } else {
      instance.context = resolve;
    }
  }
}
Legend
Html element
Component
Html element with directive

results matching ""

    No results matching ""