2015-12-27 20 views
6

Bazı sekmelerin çocuk/torun durumlarına sahip olduğu ui yönlendiriciyi kullanarak sekmeler oluşturdum. Sekme görünümünü geçmişini hatırlayabiliyorum, yani geri döndüğünde önceki kullanılan durumuna geri dönebilirim. Bunu göstermek için bir CODEPEN oluşturdum.UI yönlendiricisini kullanarak ana sayfasına gitmenin tersi olarak dönüşte yuvalanmış alt durumu nasıl koruyabilirim?

1) kullanıcıların bir sekme girer

enter image description here

2) kullanıcı

enter image description here

3) kullanıcı başka sekmeler görünümüne gider sekmenin yuvalanmış görünümüne girer

enter image description here) Kullanıcı ilk sekmeye geri dönerse, sekmenin üst görünümüne giderler. Onları bu sekmenin alt görünümüne nasıl geri götürebilirim (# 2'de görülür)?

enter image description here

JS Ben şimdi bugünkü durumunu gösteren bu codepen küçük bir güncelleme yaptık

 <div class="tabs tabs-top button-bar"> 
    <a class="tab-item" 
     ng-class="{active:$state.includes('sidemenu.parent.child1') || $state.includes('sidemenu.parent.grandchild1')}" 
     ui-sref="sidemenu.parent.child1"> 
      <b> Child1</b> 
    </a> 


     <a class="tab-item" 
      ng-class="{active:$state.includes('sidemenu.parent.child2')}" 
      ui-sref="sidemenu.parent.child2"> 
      <b>Child2</b> 
     </a> 

    ............... 

    <div ui-view name="shared-child-view"></div> 

.state('sidemenu.parent.child1', { 
     url: "/child1", 
     views: { 
     'shared-child-view' :{ 
      templateUrl: "child1.html" 
     } 
     } 
    }) 
     .state('sidemenu.parent.child2', { 
     url: "/child2", 
     views: { 
    'shared-child-view': { 
    templateUrl: "child2.html" 
    } 
    } 
    }) 
    .state('sidemenu.parent.grandchild1', { 
    url: "/grandchild1", 
     views: { 
    'shared-child-view': { 
    templateUrl: "grandchild1.html" 
    } 
    } 
    }) 

html.

+0

istediğiniz belirli bir neden Tam örnek, daraltılmış yığın snippet'inde (aynı zamanda) (yalnızca) dışında (yalnızca) site dışı mı olacak? – Deduplicator

+0

@Deduplicator, daha önce daraltılmış bir yığın snippet'i yapmadığımdan başka bir nedenden ötürü değil, ama haklısınızdır, muhtemelen başlamalıyım. – garrettmac

+0

'ui-sref' yerine (temizleyici) yerine' ng-click'de '$ state.go' kullanılmasına karşı mısınız? $ state.go, parametreleri dinamik olarak ayarlayabilmenizi sağlar, böylece bir torun sekmesi açıksa, ana denetleyicinize eklenmiş bir tür devlete sahip olabilirsiniz. –

cevap

0

Sadece eyaletlerinizi düzeltmeniz gerektiğini düşünüyorum. Örneğin:

'sidemenu.parent.child1.grandchild1' 

Ve bağlantıyı değiştirmek zorunda ve şablonunda bir ui-view ekleyeceğiz:

'sidemenu.parent.grandchild1' 

olmalıdır

<script id="child1.html" type="text/ng-template"> 
    <div> 
    <a class="button" ui-sref="sidemenu.parent.child1.grandchild1"> 
     <b>go to grandchild</b> 
    </a> 
    <div ui-view name="shared-child-view"></div> 
    </div> 
</script> 
+0

Düşünürdüğüm şey buydu ama denediğimde, çocuk devletine gitmeden torun durumuna geçmeme izin vermezdi. Bu konuda bahsetmeliydim. – garrettmac

+0

hmm ... benim için çalışıyor. Şablonu da güncellediğinden emin misin? Ya da belki de sorunu anlamıyorum. '... child1.grandchild1' adresine gidebilir, daha sonra '... child2' öğesine gidebilir, daha sonra 'back' tarayıcısına basabilirim ve ben de '... child1.grandchild1' – o4ohel

+0

Başka bir kullanıcı arayüzü ekleyebilirim. child1.html içinde ve bunu yapmak istemiyorum.Ve evet, geri düğmelerini bunlardan herhangi birinde kullanabilirim ve bu, ne tür bir id olarak ortaya çıkarsa da, bu sonuca 'child1 sekmesini' ikinci kez tıklayıp 'geri düğmesi' değil, bu sonuca ulaşmak istiyorum. Sorun 'child1 sekmesine' tıklayarak ikinci kez (başka bir sekmeyi tıkladıktan sonra) 'child1 tab' durumuna 'torun1' durumunun ne olmasını istediğime dönmez. – garrettmac