2017-02-15 23 views
5

Angular, UI Router ve Elasticsearch kullanarak küçük bir arama uygulaması oluşturdum ve sonuçlar sayfasında UI'da UI Router sorgu parametrelerini almaya çalışıyorum.UI Router ve sorgu parametreleri

yılında

vm.searchTerms = $stateParams.q || ''; 

sonra benim denetleyicisi böyle stateParams Bu

.state('search', { 
     url: '/search?q', 

ile bu

domain.com/search?user_search_terms 

ulaşmak için çalışıyorum ve searchTerms init ve $ benim benim denetleyicimde arama fonksiyonu Bu

var
vm.search = function() { 
      $state.go('search', {q: vm.searchTerms}); 
... 

UI Rota sorgu parametrelerini uygulamaya çalışana kadar her şey iyi çalışıyor. Hala arama önerileri alabilir, eyaletten eyalete geçiş yapabilir, ancak arama aralarını kullanabilirim.

Bir yapılandırma {} içinde Angular $ http paraşütlerini uygulamak gerektiğini düşündüm, ancak sonra UI Yönlendiricisi'ni kullanarak sorgu parametrelerini almaya çalışırken SADECE olduğumu fark ettim. Görünüşe göre, sorgu parametrelerini almak için UI Router ile herşeyi hallediyorum ama ... ne yapıyorum yanlış?

stateProvider.state({ 
    name: 'search', 
    url: '/search?q', 
    //... 
} 

KONTROL DAN:

cevap

7

sorgu parametreleri için, $state.params yerine $stateParams

PLUNKER DEMO

DEVLET CONFIG kullanmalıdır

function fromCtrl ($state) { 
    $state.go('search', {q: vm.searchTerms}); 
} 

KONTROL İÇİN: En searchTerms bir nesne ise yine herhangi birine sahipseniz

function toCtrl ($state) { 
    vm.searchTerms = $state.params.q || ''; 
} 

, sen JSON.stringify() ve JSON.parse()


Kontrolü bu yayınları kullanabilirsiniz şüphe: Çok bağlantılar için 210 How to extract query parameters with ui-router for AngularJS?
AngularJS: Pass an object into a state using ui-router

+0

teşekkürler – user3125823

İlgili konular