Potrzebuje wskazówek dotyczących migracji mojej konfiguracji ngRoute do konfiguracji ui.router. Obecnie mam jeden główny szablon (index.html) i ma on widok ng, w którym wstrzykiwane są wszystkie widoki. Mój obecny ngRoute config wygląda następująco:Migracja z ngRoute do routera ui
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'
});
I teraz chcemy zdefiniować drugie miejsce w index.html gdzie mogę wstrzyknąć część zawartości widoku - nie zagnieżdżony widok, ale raczej kolejną NG-view (lub ui- zobacz w terminologii ui-routera). Oryginalna sekcja ng-view jest domyślna (obecnie tylko dla/login i/contact), a nowa jest przeznaczona tylko dla określonych tras (obecnie tylko "/ notification", ale być może inne w przyszłości). Pozwala wywołać nowy widok "widok-widok".
Przeszedłem przez wiele dokumentacji ui-routera i nadal nie jestem pewien, jak przenieść powyższą konfigurację do nowej konfiguracji ui.router. Czy ktoś może mnie zmusić do rozpoczęcia lub wskazać mi jakieś przyzwoite przykłady?
Aktualizacja: Ok, oto, gdzie jestem. Dodałem kilka stanów i nowy widok ui do mojej strony index.html. Patrz poniżej:
<div class="container">
<div id="header"></div>
<div data-ui-view></div>
<div data-ui-view="notification-view"></div>
</div>
Moja routingu jest teraz:
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'
}
}
});
});
To wydaje się działać ok dla większości. Po uruchomieniu adresu URL /notification
aplikacja jest kierowana do NotificationCtrl i wyświetla treść interfejsu użytkownika w postaci notification-view
. Jednak jedynym problemem jest to, że zawartość Ui w głównym (nienazwanym) ui-widoku zostanie utracona. Chciałbym, aby wszystko, co jest już renderowane w głównym widoku, było nietknięte, i kierować tylko na notification-view
. czy to możliwe? Czy zamiast tego musi to być widok zagnieżdżony?
który szablon i kontroler chcesz dla bezimiennego ui-view w "/" powiadomień trasie? –
@KaushickGope Co to znaczy nienazwany widok ui? W powyższym routingu mam widok o nazwie "widok powiadomień" z: Controller = NotificationCtrl i templateUrl = app/views/notification.html – user1491636
unnamed ui-view oznacza to, co dodano przed "widokiem powiadomień" "
" –