2017-02-10 15 views
7

Podjęliśmy próbę przeniesienia naszej aplikacji Angular 2 (napisanej przez naszego znajomego, a tym samym możemy nie znać wszystkich szczegółów) do Ionic 2. Jednak nie udało nam się jeszcze sprawić, aby działało, dlatego pytania poniżej .Czy korzystanie z routera Angular 2 ma sens w aplikacji Ionic 2?

  1. Czy router Angular 2 będzie działał w Ionic 2?
  2. Czy używanie routera Angular 2 w aplikacjach Ionic 2 ma sens, czy powinniśmy przejść do alternatywy, np. DeepLinker?

EDIT: Nie jestem pewien, co obecna sytuacja jest, ale czytam here że:

«kątowej router jest obecnie w fazie intensywnego rozwoju i refaktoringu. W wyniku tego, routera kątowej jest obecnie wyłączona ciągu jonowej. »

  1. Gdzie w/kod metadanych/build skryptu/package.json jest punktem wyjścia, który aktywuje router? Mamy routing w NgModule ale to nie wydaje się być kopanie do działania, gdy mamy dostęp do najważniejszych URL ani pod-adresy z aplikacji:

    @NgModule({ 
        declarations: [ 
        AppComponent, 
        TestComponent, 
        AgendasListComponent, 
        TasksListComponent, 
        SnackBarComponent, 
        ConfirmationDialog, 
        AgendaComponent, 
        LoginComponent 
        ], 
        entryComponents: [ 
        ConfirmationDialog 
        ], 
        imports: [ 
        BrowserModule, 
        HttpModule, 
        MaterialModule.forRoot(), 
        AngularFireModule.initializeApp(firebaseConfig, firebaseAuthConfig), 
        RouterModule.forRoot([ 
        { 
         path: '', 
         redirectTo: 'agendas', 
         pathMatch: 'full', 
         canActivate:[ RouterGuardService ] 
        },   
        { 
         path: 'agendas', 
         component: AgendasListComponent, 
         canActivate:[ RouterGuardService ]   
        } 
        ... 
    
+1

Ionic działa na kancie 2 dlatego baza kodów będzie zgodna. Jeśli masz konkretny problem z jonikami, napisz przykład działającego kodu demonstrującego problem –

+1

Dzięki @codeninja. Rozumiem, że to powinno działać, ale mam wątpliwości co do tego, co mówi [tutaj] (https://forum.ionicframework.com/t/examples-for-ionic-2-with-angular-2-router/45186/ 6) o rytmie kątowym wyłączonym w Ionic: 'Router Angular jest obecnie intensywnie rozwijany i refaktoryzowany. W wyniku tego router Angulara jest obecnie wyłączony w sieci Ionic. Nie wiem, czy tak jest nadal. –

+0

Nie jestem też pewien, ale patrząc na ich dokumentację wokół nawigacji wydaje się, że nawigujesz tak, jak robisz w ios, przesuwając widoki do stosu nawigacji. Jeśli to nie pasuje, możesz zrezygnować z używania jonów i użyć cordova lub podobnego. –

Odpowiedz

5

Zamiast kątowa 2 routera rekomendacja jest użycie NavController & Co: https://ionicframework.com/docs/v2/api/navigation/NavController/.

Ionic 2 ma również wsparcie dla Deep Links into your application, jak sam zauważyłeś. Możesz przeczytać oficjalny wpis na blogu tutaj: http://blog.ionic.io/deeplinking-in-ionic-apps/.

Oto wtyczka do tego https://github.com/driftyco/ionic-plugin-deeplinks, która pozwala tworzyć niestandardowe adresy URL, które będą otwierać aplikację do określonych widoków, jeśli jest to jedno z Twoich wymagań.

14

Przykro mi z powodu późnej sugestii. Byłem tam, gdzie ty też jesteś. I szczerze mówiąc, jonik to koszmar. To było jednak dobre, dopóki ...

Powodem, dla którego używamy jonów jest rozwijanie się raz i wdrażanie wiele razy. web, mobile/tablet i ewentualnie windows (linux?) ...

Ale sama myśl, że aplikacja, którą budujemy, wygląda okropnie w sieci, jak rozszerzona aplikacja mobilna. Spróbowałem, myśląc, że trochę go poprawię. Ale wtedy zostawiłbym cały wstępny pomysł, utrzymując wiele baz kodu.

To, w części interfejsu użytkownika. Ale potem dowiedziałem się, że wraz z przybyciem i rozwojem Ng2, Ionic zdecydował się również na wprowadzenie NavController, zamiast czekać na (reaktywnego) Routera ... I w tym momencie sprawy stały się chaotyczne ... Więc, oprócz martwienia się o dwie bazy kodu dla interfejsu użytkownika, musiałem również przepisać go na konflikty Router/NavController.

Tymczasem moje oko padło na Minks Gechev's Angular Seed, a także z powodzeniem zmieszałem z nim bazę jońską.

Po przeprowadzeniu dyskusji uciszającej na temat Ionic Github, w której ponad 15 osób wyraziło moje obawy dotyczące problemu NavController. W którym jonowy rdzeń programista próbował nas uciszyć, mówiąc nam "wkrótce się to rozwiąże", o co poprosiłem, by "szybko to zdefiniować". Prawie mnie wyrzucił.

Tymczasem po prostu mrowiłem się z Nathan's Angular Advanced Seed. Nathan pracuje dla Telerika, sterownika open source Nativescript (który jest teraz oddzielnym fundamentem).

Początkowo byłem sceptyczny, ponieważ Telerik ma skłonność do nadużyć. Próbowałem do niego strzelać, ale to naprawdę jest szybsze i nie jest hybrydowe, jest rodzime.

Ja osobiście lubię flexbox. Tak więc szukałem interfejsu użytkownika (sieci/okien), używając tego. Dlaczego nie Onsen?

Więc idź do nasienia Nathana i weź w nim Onsen. To jest frontend. Backend - Keycloak i vert.x