AngularJS ui-Router

pavon147
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 8 lat
0

Witam!

Mam proste pytanie związane z ui-Routerem dla AngularJS.

Czy jest możliwe, aby utworzyć kilka widoków (ui-view) i dla tych widoków konkretne state'y?
Wiem, że można utworzyć wiele state'ów ale dla jednego ui-view, jak zrobić to dla wielu?

Mam coś takiego:

Kopiuj
AdminApp.config(function($stateProvider, $urlRouterProvider){

    $urlRouterProvider.otherwise('/');

    $stateProvider
        .state('index',{
            url: '/',
            views:{
                'UserView':{
                    templateUrl:'angular_app/views/RegistrationForm.html'
                }
            }
        });

});

RegistrationForm zawiera buttony, które po kliknięciu powinny zmienić widok UserView.
Oprócz UserView (czego nie ma jeszcze w kodzie) pojawią się inne widoki, które będą miały własne buttony wpływające na zmiany w tych widokach.

edytowany 3x, ostatnio: pavon147
PO
  • Rejestracja:prawie 10 lat
  • Ostatnio:10 dni
  • Postów:153
0

Chcesz mieć jeden state np. 'user' i do tego podpięte kilka widoków, które są zależne od jakiegoś parametru?
Może ten link Ci pomoże: https://github.com/angular-ui/ui-router/wiki/Multiple-Named-Views

edytowany 1x, ostatnio: podroznik
pavon147
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 8 lat
0

Do tych widoków chcę mieć podpięte jeszcze inne state'y.
Wyobraź to sobie tak:
Na stronie trzy divy, w każdym z nich są przyciski nawigacji i jeżeli w jednym z tych divów nacisnę przycisk to tylko w tym divie wystąpi animacja podmiany widoku na inny, a pozostałe dwa divy nie zostaną ruszone. W tej chwili zmieniłem koncepcję. Zrobiłem jednego diva, w którym mam więcej przycisków nawigacji i po ich wybraniu pojawiają się contenty, które wtedy były rozbite na trzy divy i nie ma problemu. Jednak wolałbym mieć trzy osobne okna i w ich ramach móc wywoływać animacje i przywoływać widoki związane tylko z nimi.

Chyba nie ma tak dobrze jeszcze, jakbym ja chciał. Chyba nie da się czegoś takiego zrobić.

edytowany 1x, ostatnio: pavon147
PO
  • Rejestracja:prawie 10 lat
  • Ostatnio:10 dni
  • Postów:153
0

Wydaje mi się, że się da.

Kopiuj
<body>
  <div ui-view="filters"></div>
  <div ui-view="tabledata"></div>
  <div ui-view="graph"></div>
</body>

Coś takiego wyświetla Ci 3 state na stronie. Teraz sobie dodaj do tego diva ng-show/ng-hide na podstawie zmiennej którą będzie zmieniał przycisk.

edytowany 1x, ostatnio: dzek69

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.