Получить ng-шаблон из компонента angular 2

как я могу получить элемент в angular 2? на случай, если у меня есть это в html

<ng-template #content let-c="close" let-d="dismiss">
  <div class="modal-header">Header</div>
   <div class="modal-body">Body</div>
  <div class="modal-footer">footer</div>
</ng-template>

я использую это для ngBmodal ng-bootstrap, если я использую кнопку для открытия контента, его работа = кнопка

(click)="open(content,data.id)"

тогда я хотел бы открыть контент из компонента в этом случае, им перенаправить с другой страницы и открыть контент

ngOnInit() {
    this.activatedRoute.queryParams.subscribe((params: Params) => {
        let id = params['id'];
        if(id != undefined){
          this.open('content',id);         
        }
      });
  }
open(content, id) {
    this.dataModal = {};
    this.getDataModal(id);

    this.mr = this.modalService.open(content, { size: 'lg' });
  }

модальное открыто, но не с html, я пытаюсь afterviewinit получить #content, это не работает, спасибо, извините за мой английский: v


person Rifal    schedule 16.05.2017    source источник
comment
Вы нашли решение для этого?   -  person Ben    schedule 20.06.2017


Ответы (1)


Первый импорт NgbModal и ModalDismissReasons

import { NgbModal, ModalDismissReasons } from '@ng-bootstrap/ng-bootstrap';

и добавить модальный сервис в конструктор

private modalService: NgbModal

Видеть:

https://ng-bootstrap.github.io/#/components/modal/examples#options

Затем в вашем машинописном файле:

1 – Импорт TemplateRef и ViewChild, пример:

import { TemplateRef, ViewChild } from '@angular/core';

2 – Создайте переменную, связывающую шаблон ngtemplate (добавьте перед конструктором):

@ViewChild('content')
private content: TemplateRef<any>;

3 – Открыть модальное окно из машинописного текста:

this.modalService.open(this.content);
person alansastre    schedule 22.07.2018