Risposte:
Entrambi svolgono la stessa funzione di quelli utilizzati per scopi di routing in SPA (Single Page Application).
URL per controller e viste (parziali HTML). Guarda $ location.url () e tenta di mappare il percorso su una definizione di percorso esistente.
HTML
<div ng-view></div>
Il tag sopra renderà il modello dalla $routeProvider.when()
condizione che hai menzionato in .config
(fase di configurazione) di angolare
Limitazioni: -
ng-view
sulla pagina$routeProvider
non riesce. (per ottenere questo, abbiamo bisogno di usare le direttive come ng-include
, ng-switch
, ng-if
, ng-show
, che sembra male avere loro in SPA)AngularUI Router è un framework di routing per AngularJS, che consente di organizzare le parti dell'interfaccia in una macchina a stati. UI-Router è organizzato intorno agli stati, che possono facoltativamente avere percorsi, così come altri comportamenti, collegati.
Visualizzazioni multiple e con nome
Un'altra grande caratteristica è la possibilità di avere più UI-View in un modello.
Mentre più viste parallele sono una funzionalità potente, spesso sarai in grado di gestire le tue interfacce in modo più efficace annidando le tue view
e accoppiando quelle viste con stati nidificati.
HTML
<div ui-view>
<div ui-view='header'></div>
<div ui-view='content'></div>
<div ui-view='footer'></div>
</div>
La maggior parte del ui-router
potere è che può gestire lo stato e le viste nidificate.
Professionisti
ui-view
su una sola paginaui-view="some"
stato semplicemente utilizzando il routing assoluto utilizzando @
con il nome dello stato.@
per modificare ui-view="some"
. Ciò sostituirà ui-view
anziché verificare se è nidificato o meno.ui-sref
per creare un href
URL in modo dinamico sulla base di URL
citato in uno stato, inoltre è possibile fornire parametri di stato nel json
formato.Per ulteriori informazioni Ui-router angolare
Per una migliore flessibilità con varie visioni nidificate con gli stati, preferirei che tu cercassi ui-router
$stateProvider
&$routeProvider
Il ng-Router di Angular prende URLs
in considerazione durante il routing, UI-Router prende states
in considerazione gli URL.
Gli stati sono associati a viste denominate, nidificate e parallele, consentendo di gestire in modo efficace l'interfaccia dell'applicazione.
Mentre in ng-router, devi prestare molta attenzione agli URL quando fornisci collegamenti tramite <a href="">
tag, in UI-Router devi solo tenere state
a mente. Fornisci link come <a ui-sref="">
. Nota che anche se usi <a href="">
in UI-Router, proprio come faresti in ng-router, funzionerà comunque.
Quindi, anche se un giorno deciderai di cambiare l'URL, state
rimarrai lo stesso e dovrai cambiare l'URL solo a .config
.
Mentre ngRouter può essere utilizzato per creare app semplici, UI-Router semplifica notevolmente lo sviluppo di app complesse. Ecco la sua wiki.
$ route: viene utilizzato per il collegamento diretto di URL a controller e viste (parziali HTML) e guarda $ location.url () per mappare il percorso da una definizione esistente di route.
Quando utilizziamo ngRoute, il percorso è configurato con $ routeProvider e quando usiamo ui-router, il percorso è configurato con $ stateProvider e $ urlRouterProvider.
<div ng-view></div>
$routeProvider
.when('/contact/', {
templateUrl: 'app/views/core/contact/contact.html',
controller: 'ContactCtrl'
});
<div ui-view>
<div ui-view='abc'></div>
<div ui-view='abc'></div>
</div>
$stateProvider
.state("contact", {
url: "/contact/",
templateUrl: '/app/Aisel/Contact/views/contact.html',
controller: 'ContactCtrl'
});