Richiede alcune istruzioni per quanto riguarda la migrazione della configurazione di ngRoute in una configurazione di ui.router. Attualmente ho un modello principale (index.html) e ha una vista ng in cui sono iniettate tutte le viste. Il mio attuale configurazione ngRoute è la seguente:Migrazione da ngRoute a ui-router
app.config(function ($routeProvider) {
$routeProvider
.when('/login', {
templateUrl: 'app/views/login.html',
controller: 'LoginCtrl'
})
.when('/contact', {
templateUrl: 'app/views/contact.html',
controller: 'ContactCtrl'
})
.when('/notification', {
templateUrl: 'app/views/notification.html',
controller: 'NotificationCtrl'
})
.otherwise({
redirectTo: '/login'
});
Ora voglio definire un secondo posto in index.html dove posso iniettare alcuni contenuti vista - non una vista nested, ma piuttosto un'altra ng-view (o UI- vista nella terminologia dell'interfaccia utente). La sezione originale di ng-view è quella di default (attualmente solo per/login e/contact), e la nuova è solo per rotte specifiche (attualmente solo '/ notification' ma forse altre in futuro). Consente di chiamare la nuova vista di notifica 'vista-notifica'.
Ho passato gran parte della documentazione del router e non sono ancora sicuro di come migrare quanto sopra alla nuova configurazione di ui.router. Qualcuno può farmi iniziare o indicarmi degli esempi decenti?
Aggiornamento: Ok, qui è dove mi trovo. Ho aggiunto alcuni stati e una nuova vista ui alla mia pagina index.html. Vedi sotto:
<div class="container">
<div id="header"></div>
<div data-ui-view></div>
<div data-ui-view="notification-view"></div>
</div>
Il mio percorso è ora:
app.config(function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/login');
$stateProvider
.state('login', {
url: '/login',
templateUrl: 'app/views/login.html',
controller: 'LoginCtrl'
})
.state('contact', {
url: '/contact',
templateUrl: 'app/views/contact.html',
controller: 'ContactCtrl'
})
.state('notification', {
url: '/notification',
views: {
"notification-view": {
templateUrl: 'app/views/notification.html',
controller: 'NotificationCtrl'
}
}
});
});
Questo sembra funzionare bene per la maggior parte. Quando viene attivato l'url /notification
, l'app viene instradata a NotificationCtrl e visualizza il contenuto della vista ui nello notification-view
. Tuttavia, l'unico problema è che il contenuto dell'interfaccia utente nella vista utente principale (senza nome) viene perso. Vorrei che tutto ciò che è già stato renderizzato nella vista utente principale non fosse toccato, e mirare solo allo notification-view
. È possibile? Deve invece essere una vista nidificata?
quale modello e controller che si desidera per il senza nome ui-view percorso "/ notifica"? –
@ KaushickGope Cosa intendi per ui-view senza nome? Nel suddetto routing, ho una vista chiamata 'notifica-vista' con: Controller = NotificationCtrl e templateUrl = app/views/notification.html – user1491636
ui-view senza nome significa cosa hai aggiunto prima di 'notification-view' "
" –