Как отправить значения компоненту из диалогового сервиса

Я пытаюсь создать пользовательскую диалоговую службу. Для этого я создал диалоговую службу:

import {DialogService,DialogRef,DialogCloseResult } from '@progress/kendo-angular-dialog';  
import {Injectable} from "@angular/core";  
import {CustomComponent} from './custom.component'; 

@Injectable()
 export class DialogoService {
     constructor(private dialogService: DialogService) { }
     public confirm(title: string, content?: string): DialogRef {
      return  this.dialogService.open({
              title: title,
          content: CustomComponent ,//This is my component that holds the template
          actions: [
                    {text: 'Yes', primary: true},
                    {text: 'No'}
                   ]
               });
            } }

А это мой CustomComponent

import {Component} from '@angular/core';

@Component({
    moduleId : module.id,
    selector: 'customcomponent',
    templateUrl: './custom.component.html'
})

export class CustomComponent {
    content : string ;
}

И, наконец, мой custom.component.html:

<div> Content: {{content}} </div>

Как мне отправить параметр содержимого из службы в функцию dialogService.open?

Параметр содержимого dialogService.open может быть строкой, компонентом или TemplateRef. В моем случае я отправляю CustomComponent в качестве параметра, но не могу установить параметр заголовка для этого компонента из моей службы.

Извините за мой плохой английский. Заранее спасибо.


person Lucas Martinez    schedule 21.02.2017    source источник


Ответы (1)


Обновление: в версии 0.16 диалогового окна добавлено поле DialogRef.content, которое можно использовать для передачи информации дочернему компоненту.

const dialogRef = dialogService.open({ content: MyComponent });
dialogRef.content.instance.foo = "bar";

см. документацию для запускаемого примера.


На момент написания единственный способ передать информацию дочернему компоненту — это использовать службу, которая будет внедрена в компонент.

Следующая версия диалогового окна будет передавать ComponentRef дочернему компоненту, что позволит вам передавать данные после вызова DialogService.open.

person Alex Gyoshev    schedule 01.03.2017
comment
Отличные новости. Спасибо - person Lucas Martinez; 02.03.2017
comment
@LucasMartinez выпущена новая версия диалога, я обновил ответ соответствующим кодом. - person Alex Gyoshev; 06.03.2017
comment
Я очень ценю эту функцию. Спасибо за работу @Alex Gyoshev - person Lucas Martinez; 07.03.2017
comment
@AlexGyoshev Не могли бы вы предоставить обновленную ссылку с описанием использования ComponentRef? Я не могу найти предоставленный ответ в документации KendoUI Angular Dialog API. - person Jeet; 24.12.2019
comment
@Джит Обновлено. С Новым Годом :) - person Alex Gyoshev; 06.01.2020