2014-11-16 18 views
5

Arka uçta ui yönlendiriciyi kullanan iyonik çerçeveyi kullanan bir açısal uygulamaya sahibim. Benim denetleyicileri birinde

ararım:

$location.search('filter','sometext'); 

benim yönlendirme yapılandırmasında reloadOnSearch devre dışı bıraktık. Konumu güncellemenin $stateParams'u güncellemediğini fark ettim. Konum güncellendikçe güncellemek için $stateParams'u zorlamak için bir yol var mı? UI yönlendirici belgelerine baktım ama bu senaryo hakkında bir şey görmedim, ama belki de onu özledim.

+0

$ urlRouter.sync() 'yi buldum ancak bu, $ konumu güncellendikten sonra durum parametrelerini güncelleştirmiyor. –

+0

Senkronizasyonu ne zaman kullanıyorsunuz()? $ $ rootScope. $ on ('$ locationChangeSuccess', işlev (evt) {$ urlRouter.sync();}); ' –

+0

Bu, doğrulanmış bir hatadır. https://github.com/angular-ui/ui-router/issues/1546 –

cevap

5

Benzer bir durum vardı. reloadOnSearch'u devre dışı bırakmışsanız, rota güncellemelerini takip edemezsiniz, ancak bu vaka için bir çözüm buldum.

İzle $stateParams:

$scope.$watchCollection('$stateParams', function (newParams) { 
    var search = $location.search(); 

    if (angular.isObject(newParams)) { 
     angular.extend(search, newParams); 
    } 

    $location.search(search).replace(); 
}); 

Değişim $stateParams değil, rota:

$scope.$stateParams.offset += $scope.$stateParams.limit; 

Tamamen working example.

İlgili konular