UI angolare Boostrap fornisce un servizio - $dialog
- che può essere iniettato ovunque sia necessario utilizzare una finestra di dialogo. Questo servizio ha due metodi principali: dialog
e messageBox
. Il primo è utilizzato per creare una finestra di dialogo con contenuto dinamico e il secondo per creare una finestra di messaggio con un titolo, un messaggio e un set di pulsanti. Entrambi restituiscono una promessa in modo che tu possa elaborare il suo risultato, quando è disponibile.
Penso che questo approccio funzioni bene, perché si adatta al modo naturale e imperativo di gestire i dialoghi. Ad esempio, se l'utente fa clic su un pulsante e si desidera mostrare una finestra di dialogo e quindi elaborare il suo risultato, il codice potrebbe essere la seguente:
$scope.doSomething = function() {
$dialog.dialog().open().then(function(result) {
if (result === OK) {
// Process OK
}
else {
// Process anything else
}
});
}
È infatti possibile utilizzare le direttive di fare lo stesso, e forse sembra il modo giusto per farlo visto che c'è la manipolazione del DOM, ma penso che sarebbe un po 'scomodo gestirlo. L'esempio precedente sarebbe qualcosa di simile a questo:
<dialog visible="dialogVisible" callback="dialogCallback()"></dialog>
...
$scope.doSomething = function() {
$scope.dialogVisible = true;
}
$scope.dialogCallback = function(result) {
if (result === OK) {
// Process OK
}
else {
// Process anything else
}
}
IMO, il primo esempio sembra migliore ed è più facile da capire.
fonte
2013-08-29 17:01:34
Mi piace questo approccio migliore. Ancora meglio, qualcuno ha avuto il tempo di implementare uno di base da cui iniziare: https://github.com/adamalbrecht/ngModal – joescii