2014-09-02 14 views
5

Mam główną kartę, która po prostu pokazuje listę pozycji. i zakładka ustawień, która ma widok zagnieżdżony do ustawiania różnych konfiguracji.Jonowy przycisk Wstecz nieprawidłowo wyświetlany podczas przełączania kart

Gdybym poruszać w tym konkretnym celu, przycisk wstecz pokazano nieprawidłowo, lub jeśli ma być pokazane, tytuł nie dostać left: 37px

ten sposób tworzę na pasku nawigacyjnym.

<ion-nav-bar class="bar-stable no-animation" align-title="left"> 
    <ion-nav-back-button class="button-icon icon ion-ios7-arrow-back"></ion-nav-back-button> 
</ion-nav-bar> 

enter image description here

Czy istnieje rozwiązanie, albo wyczyścić historię tej karcie, więc podczas klikania na niego z powrotem otwiera zakładkę ustawienia główne zamiast poprzednio otwartego zagnieżdżonego widzenia? Lub, jeśli trzeba to pokazać, należy poprawnie obliczyć lewą część tytułu.

Oto codepen demo. Kliknij karty w tej kolejności.

1. On main page, click on Scientific Facts 
2. After view changes, click on Contacts tab 
3. Then click on Home tab again. It reproduces the behavior. 

Aktualizacja:

tej pory co znalazłem jest to, że istnieje $scope.$watch który decyduje, czy pokazać lub ukryć przycisk wstecz. a to zostanie uruchomione późno (po obliczeniu i wyrównaniu tytułu). Dlatego podczas obliczania, leftWidth nie otrzymuje ponownie szerokości przycisku.

+1

Miałem ten problem przez jakiś czas. Rozwiązałem go, zapisując "historyID" na karcie głównej i przechodząc bezpośrednio do tego. Nie sądzę, że to świetne rozwiązanie, więc jestem ciekawy, co inni wymyślą. W międzyczasie możesz zobaczyć, co tutaj zrobiłem ... http://codepen.io/MrOnosa/pen/ILCed – Onosa

+0

Hmm .. to całkiem miłe obejście. Zobaczmy, czy ktoś ma jakieś rozwiązanie. Próbowałem debugować w pliku ionic.bundle.js. Wygląda na to, że stan przycisku wstecz zmienia się po zmianie karty.Z tego powodu, jeśli przejdziemy do nowej zakładki z widoku zagnieżdżonego, tytuł jest wcięty. Jest to również związany błąd. –

Odpowiedz

4

Gdy zakładki są używane w ten sposób, każda zakładka zawiera własną historię. Właściwie pokazuje przycisk Wstecz, ponieważ stan karty głównej zmienił się na podstronę. Przycisk "Wstecz" spowoduje powrót do strony głównej tej zakładki (przycisk Wstecz dotyczy każdej karty!). Pierwsze kliknięcie/dotknięcie przycisku karty powoduje przełączanie kart, drugie kliknięcie/dotknięcie spowoduje przejście użytkownika do domyślnej strony dla tej karty. Błąd jest czasami nadal stosowany przycisk wstecz.

Wierzę, że zespół joński pracuje nad pewnymi ulepszeniami i poprawkami.

Można użyć $ionicNavBarDelegate.showBackButton(false); w kontrolerze do strony głównej, aby wyłączyć przycisk wstecz w tym widoku. Istnieje również dyrektywa nav-clear, którą można umieścić na znaczniku zakotwiczenia, aby wyraźnie ukryć przycisk Wstecz w połączonym widoku.

Controller Przykład

angular.module('App').controller('HomeCtrl', function ($scope, $ionicNavBarDelegate) { 
    // Disable back button on this controller 
    $ionicNavBarDelegate.showBackButton(false); 
}); 
+0

Ustawienie 'showBackButton' na false spowoduje, że przycisk" Wstecz "będzie wyświetlany we wszystkich przypadkach, prawda? Chcę to pokazać. Po prostu wyłącz historię (i otwórz widok pierwszej zakładki) lub przycisk Pokaż ponownie prawidłowo umieszczony. Zobacz [tutaj] (https://github.com/driftyco/ionic/issues/2129), został zaakceptowany jako błąd i oczekuje na rozwiązanie. Spróbuję nad tym popracować, kiedy będę mógł. –

0

Jeśli używasz tylko kątowa trasach Korzystając follwoing

$ route.reload()

Można również użyć następujących jeśli używasz interfejsu -Router na jońskich

$ state.go ($ state.current, {}, {przeładowania: true});

Powiązane problemy