2013-07-07 16 views
70

Açısal uygulamasında kullanıcının bir öğe yüklemesine izin verilir ve bu olduğunda, öğenin kimliğini içeren bir sorgu dizesi ayarlamak isterim. Böylece, kullanıcı sayfayı yenilediğinde (veya bağlantıyı bağlamak istediğinde), URL'de Zaten ayarlanmış (eğer ID $ routeParams içinde mevcutsa öğeyi yükleyen bir kod zaten var).AngularJS'de bir rota yapmadan nasıl bir sorgu parametresi ayarlayabilirim?

Bu sorgu parametresini rota oluşturmadan nasıl ayarlayabilirim? Sayfada sıfırlama yapılacak başka bir şey var (eğer tüm verileri yeniden yüklemek zorunda kalacak bir eklenti de dahil olmak üzere), eğer bir rota olursa, sadece sorgu parametresinin değişmesi önemlidir. Ben öğeyi 123 yüklediğinizde, Kısacası

, ben olmasını istediğim bütün olduğunu URL değişiklikleri:

www.myurl.com/#/Items

için:

herhangi Routin olmadan www.myurl.com/#/Items?id=123

g yer alıyor.

Bunu yapmanın en iyi yolu nedir? senin $routeProvider yapılandırmada

cevap

161

false reloadOnSearch ayarlayın:

$routeProvider 
    .when('/items', { 
    controller: 'ItemsCtrl', 
    templateUrl: '/templates/items', 
    reloadOnSearch: false 
    }, 
    ... 
); 

ve denetleyici kullanım $location.search() yılında id param ayarlamak için:

$location.search('id', 123); 
+4

sorgu ayarlarken i bazı gerçekten garip davranışlar vardı string.'''reloadOnSearch: false'' benim için anahtar oldu. –

İlgili konular