2013-09-23 11 views
5

Ben 2 devletler, A ve AB ile bir uygulama kurulum yapmış bu taraftan yenilemez: Ben devlet AB olduğum zamanangularjs ui-yönlendirici devlet geri

$stateProvider.state('A', { 
     url: "/A/{aId}", 
     controller: 'AController', 
     templateUrl: function($stateParams) { 
      return "/A/" + $stateParams.aId + "/layout"; 
     } 
    }).state('A.B', { 
     url: "/B/{bId}", 
     controller: 'BController', 
     templateUrl: function($stateParams) { 
      return "/A/" + $stateParams.aId + "/B/" + $stateParams.bId+ "/layout"; 
     } 
    }); 

(url somthing olurdu gibi #/A/12/B/123) ve tarayıcının geri düğmesini veya geçişi kullanarak geri dönün. URL değiştiğinde, AB durumu silinir, ancak A durumu geri dönmez. Denetleyicinin tetiklenmediğini söyleyebildiğim kadarıyla.

Yani A/12/B/123'deyim ve A/12'ye geri dönersem hiçbir şey olmaz, ancak A/13'e geçersem (geçişi kullanarak).

Köşeli yönlendirici projesinden örnek uygulamada bu senaryo düzgün çalışıyor, bu yüzden kurulumumda yanlış bir şey olabileceğini düşünüyorum. Ben index.html üzerinde devlet A ve A için şablon devlet yükleyen bir UI görünümü var devlet AB

yükleyen varsayalım, bu gerçekten çok teşekkür ediyorum

$ state.reload()

Onun yeniden yükler mevcut durumunu zorlamak bir yöntem:

+1

: https: // github .com/angular-ui/ui-router/issues/52 –

+0

Evet, bu sorunu gördüm ama tanımladığım davranış örnek uygulamalarında iyi çalışıyor. http://angular-ui.github.io/ui-router/sample/ – Grig

+0

Sorunu gösteren bir Plunkr gönderebilir misiniz? Bu, genellikle tüm durumlarda iyi sonuç veren oldukça standart bir davranıştır. –

cevap

0

bu kullanarak denediniz. Tüm giderir, yeniden çözülür olaylar yeniden ateş edilmez ve kontrolörler Bu sadece takma adıdır

reinstantiated: Bu konuda açık bir konu hala olduğuna inanıyoruz

$state.transitionTo($state.current, $stateParams, { 
     reload: true, inherit: false, notify: false 
    });