2017-10-05 4 views
0

J'utilise un composant ConfirmDialog de PrimeNg Collection. Je peux mettre mon message comme ceci:Définir PrimeNG confirmer le message à partir du modèle

this.confirmationService.confirm({ 
     message: 'my message', 
    }); 

Il fonctionne, mais le problème est qu'il devient malpropre si je besoin d'un grand ensemble de balises avec d'autres composants là-dedans. Je veux écrire mon message dans un modèle HTML à côté de la balise p-confirmDialog avec les directives et les composants d'Angular incorporés directement dans celle-ci.

Comment puis-je y parvenir?

+0

https://stackoverflow.com/a/45789799/8468804 Peut-être mettre en œuvre quelque chose comme ma réponse dans ce post comme une solution de rechange. Rappelez-vous, mais si vous voulez obtenir un modèle pour une variable/propriété va être désordonné de toute façon. –

+0

Je ne veux pas de hacks et de solutions de contournement. Si Angular est si grand tout devrait être possible de faire correctement. – Gherman

Répondre

0

Voici une autre approche et je pense que c'est une façon plus appropriée de le faire.

HTML

<p-confirmDialog appendTo="body"> 
<ng-template pTemplate="body"> 
    <span class="ui-confirmdialog-message">{{message}}</span>" 
</ng-template> 

TS

... 
constructor(private confirmationService: ConfirmationService) {} 

private message = `Do you want to change your status to <span style="color:red">inactive</span>` //your template html; 
... 
this.confirmationService.confirm({ 
    header: "Some header", 
    message: this.message, 
    accept:() => { 
    //Do something 
    } 
}); 

Vous pouvez toujours avoir un service dédié à appeler ConfirmationService et passer dans le message que vous le souhaitez.