Nello script #157 abbiamo visto come poter gestire il routing con AngularJS, così da sfruttare meglio anche la history del browser.
In particolare, il nostro obiettivo è quello di verificare i parametri della route, per evitare che una route risponda se i valori dei parametri specificati non dovessero essere congrui.
Per implementare questo scenario, dobbiamo affidarci alla proprietà resolve: si tratta di una proprietà che può contenere una o più promise che devono essere risolte con successo prima che il cambio di route venga confermato. Questo consente anche di aspettare che la condizione si verifichi prima di caricare la view, consentendo di caricare questi dati in seguito a richieste a risorse remote.
mmyApp.config(['$routeProvider', function($routeProvider) { $routeProvider. when('/details/:Id', { templateUrl: 'views/orders/detail.html', controller: 'OrderDetailController', resolve: { id: function ($q, $route) { var deferred = $q.defer(), id = parseInt($route.current.params.id, 10); if (!isNaN(id)) { deferred.resolve(id); } else { deferred.reject('Id not a number'); } return deferred.promise; } } }); });
Grazie all'uso del deferred, la promise aspetterà l'esecuzione del codice (anche asincrono) e provvederà a valorizzare i rispettivi parametri di route solo se le condizioni espresse vengono verificate con successo.
Per approfondimenti:
Gestione del routing con AngularJS
https://www.html5italia.com/script/157/Gestione-Routing-AngularJS.aspx
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Registrare servizi multipli tramite chiavi in ASP.NET Core 8
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Creazione di componenti personalizzati in React.js con Tailwind CSS
Gestione dell'annidamento delle regole dei layer in CSS
Configurare il nome della run di un workflow di GitHub in base al contesto di esecuzione
Creare una libreria CSS universale: Clip-path
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Filtering sulle colonne in una QuickGrid di Blazor
Ordine e importanza per @layer in CSS
Recuperare l'ultima versione di una release di GitHub
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API