Estou usando a caixa de diálogo de material2 angular.
Quero passar dados para o componente aberto. Aqui está como estou abrindo a caixa de diálogo ao clicar em um botão
let dialogRef = this.dialog.open(DialogComponent, {
disableClose: true,
data :{'name':'Sunil'}
});
Na página de documentação há propriedade de dados, mas eu verifiquei MdDialogConfig em meus pacotes instalados
/**
* Configuration for opening a modal dialog with the MdDialog service.
*/
export declare class MdDialogConfig {
viewContainerRef?: ViewContainerRef;
/** The ARIA role of the dialog element. */
role?: DialogRole;
/** Whether the user can use escape or clicking outside to close a modal. */
disableClose?: boolean;
/** Width of the dialog. */
width?: string;
/** Height of the dialog. */
height?: string;
/** Position overrides. */
position?: DialogPosition;
}
não há propriedade de dados na classe de configuração.
Agora, como posso acessar os dados transmitidos?
Esta resposta está bastante desatualizada. Em vez disso, dê uma olhada na resposta do epifanático .
Você pode usar dialogRef.componentInstance.myProperty = 'some data'
para definir os dados em seu componente.
Você precisaria de algo assim:
let dialogRef = this.dialog.open(DialogComponent, {
disableClose: true,
});
dialogRef.componentInstance.name = 'Sunil';
Em seguida, DialogComponent
você precisa adicionar name property
:
...
@Component({
...
})
export class DialogComponent {
public name: string;
...
}
Não encontrei nenhuma documentação sobre isso, então comecei a pesquisar o código-fonte também. Por causa disso, pode não ser a maneira oficial de fazer.
Eu localizei os dados com sucesso em dialogRef._containerInstance.dialogConfig.data
;
Então, o que você pode fazer é, por exemplo
let name = dialogRef._containerInstance.dialogConfig.data.name;
console.log(name); // Sunil
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras