URL çubuğundaki değişiklikleri izlemem ve buna göre belirli eylemler gerçekleştirmem gerekiyor. Değişiklikleri görüntülemek için bir saat eklemenin en iyi yolunun ne olduğunu merak ettim. Eğer denetleyicisi $ konum nesne talep etmiş olduğu varsayıldığında
5
A
cevap
12
Olaylar onlar sadece nedense belgesiz ediyoruz, mevcuttur. $locationChangeStart
ve $locationChangeSuccess
scope.$on('$locationChangeStart', function (event, newLoc, oldLoc){
console.log('changing to: ' + newLoc);
});
scope.$on('$locationChangeSuccess', function (event, newLoc, oldLoc){
console.log('changed to: ' + newLoc);
});
Veya Anders önerildiği şekilde $ $ saatin ilk argüman içine bir işlev geçirerek istediğiniz herhangi bir değeri izleyebilirsiniz:
aşağıdaki olayları deneyin Ancak
scope.$watch(function() { return $location.path(); }, function(newLoc, oldLoc){
console.log(newLoc, oldLoc);
});
Bu, $ özetinizde biraz daha fazla yük oluşturur.
1
, bunu şöyle yapabilirsiniz:
$scope.$watch(function() { return $location.path() }, function() {
// Do stuff when the location changes
});
İlgili konular
- 1. LocationProvider
- 2. $ routeProvider/$ locationProvider AngularJS Yönlendirmesi'nde bir işlev değil
- 3. İzleme mongoose.js alanlarındaki değişiklikleri izleme
- 4. Görme İzleme/İzleme İş Akışı (WF) 4,0
- 5. İzleme Akışları
- 6. MSMQ izleme
- 7. ListeYazı İzleme
- 8. NullReferenceException İzleme
- 9. Android uygulamalarını Eclipse eklentisi ile izleme TPTP yerine izleme
- 10. Windows işlemlerini izleme
- 11. Çekirdek Yer bölge izleme
- 12. Sayfa görüntülemelerini izleme
- 13. Arama izleme java
- 14. İzleme API çağrıları
- 15. GDI çağrılarını izleme
- 16. Android cihazda WiFi izleme
- 17. Capybara: günlükte istisna izleme
- 18. Swift'de Admob Dönüşüm İzleme
- 19. Java sınıfında izleme sınıfı
- 20. Spring Ehcache MBean İzleme
- 21. chrome: // izleme - Chrome
- 22. urllib2 POST ilerleme izleme
- 23. Yığın izleme 3
- 24. postgresql'deki revizyonları izleme
- 25. Salatalıktaki Bir Dönüşümü İzleme
- 26. Özel yöntem aramalarını izleme
- 27. django - Bu İzleme sahip
- 28. Hibernae Envers değişiklikleri izleme
- 29. SQLAlchemy'de izleme modeli değişiklikleri
- 30. Kalite Kontrol/Günlük İzleme
Teşekkürler @blesh. İki olayın ne zaman yayıldığını ve aralarındaki farkın ne olduğunu anlamaya çalışmak. herhangi bir fikir? – Lior
Her şey $ location için başlangıç kodunda kuruldu. [GitHub kaynağına bir bakın] (https://github.com/angular/angular.js/blob/master/src/ng/location.js). $ LocationChangeStart için sadece CTRL + F. Temelde, önerilen $ watch() yöntemiyle aynıdır, ancak zaten sizin için ayarlanmıştır, bu nedenle daha az masraf vardır. –
Özetle, '$ locationChangeStart' önce gelir ve size iletilen olay nesnesinde 'preventDefault() 'ile değişikliği önlemek için bir seçenek sunar. Konum başarıyla değiştirildikten sonra '$ locationChangeSuccess' patlar. (yerine, konumu değiştirmeye karar verdiğinizde). –