Tôi cần xem các thay đổi trên thanh URL và thực hiện một số hành động nhất định dựa trên đó. Tôi tự hỏi cách tốt nhất để thêm một chiếc đồng hồ để xem những thay đổi đối với nó là gì?
5
A
Trả lời
12
Sự kiện tồn tại, chúng tôi chỉ cung cấp tài liệu cho một số lý do.
Hãy thử các sự kiện sau: $locationChangeStart
và $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);
});
Hoặc bạn có thể $ xem bất kỳ giá trị mà bạn muốn bằng cách truyền một hàm vào đối số đầu tiên là $ đồng hồ như Anders gợi ý:
scope.$watch(function() { return $location.path(); }, function(newLoc, oldLoc){
console.log(newLoc, oldLoc);
});
Tuy nhiên điều này sẽ tạo thêm một chút chi phí trên $ digest của bạn.
1
Giả sử rằng bạn đã yêu cầu $ vị trí đối tượng trong điều khiển của bạn, bạn có thể làm điều đó như thế này:
$scope.$watch(function() { return $location.path() }, function() {
// Do stuff when the location changes
});
Các vấn đề liên quan
- 1. templating trong angular.js - thừa kế
- 2. Chỉ thị trong Angular.JS
- 3. $ http đăng trong Angular.js
- 4. databinding một hàm trong Angular.js
- 5. Cache DOM ở Angular.JS
- 6. Angular.js với jQuery Mobile
- 7. sử dụng $ http trong nhà máy angular.js
- 8. Gì đứng ng cho trong Angular.js chỉ
- 9. Chuyển đổi và văn bản trong angular.js
- 10. Tạo các bảng với Angular.js
- 11. Trộn Spring MVC với Angular.JS
- 12. angular.js: cập nhật mô hình không kích hoạt cập nhật chế độ xem
- 13. Angular.js - Ngăn chặn truy cập trực tiếp vào một phần lượt xem
- 14. Nhiều trường hợp bộ điều khiển trong angular.js, javascript
- 15. Đợi cho đến khi biến phạm vi được tải trước khi sử dụng biến trong chế độ xem trong angular.js
- 16. reinitialize một bộ điều khiển Angular.js
- 17. Cách chuyển trạng thái của nút trong angular.js?
- 18. Mẫu để sắp xếp và tải CSS trong Angular.js
- 19. Angular.js: liên kết hai chiều bên trong ng-repeat
- 20. Angular.js flash của nội dung mẫu
- 21. Sử dụng HTML5 pushstate trên angular.js
- 22. Các vấn đề về hiệu suất angular.js
- 23. Angular.js gửi mẫu cũ theo cách cũ
- 24. Angular.js: Lỗi không bắt buộc, không có mô-đun: myapp
- 25. Với angular.js sử dụng ui-router, làm thế nào để chỉ tải lại một chế độ xem?
- 26. Xóa tiêu đề từ Angular.js $ http yêu cầu
- 27. có "ratchet" chơi độc đáo với "angular.js" chưa?
- 28. Angular.JS: tại sao không thể chỉnh sửa đầu vào?
- 29. Biểu mẫu xác thực phía máy chủ Angular.js
- 30. Truy cập-điều khiển-cho phép-xuất xứ angular.js chrome
Cảm ơn @blesh. cố gắng xác định khi nào hai sự kiện được phát ra và sự khác biệt giữa chúng. bất kỳ ý tưởng? – Lior
Tất cả được thiết lập trong mã khởi tạo cho $ location. [Hãy xem mã nguồn trên GitHub] (https://github.com/angular/angular.js/blob/master/src/ng/location.js). Chỉ CTRL + F cho $ locationChangeStart. Về cơ bản nó giống như phương thức $ watch() được đề xuất, nhưng nó đã được thiết lập cho bạn, vì vậy có ít chi phí hơn. –
Tóm lại, '$ locationChangeStart' xảy ra đầu tiên và cung cấp cho bạn một tùy chọn để ngăn thay đổi với' preventDefault() 'trên đối tượng sự kiện được truyền cho nó. '$ locationChangeSuccess' kích hoạt sau khi vị trí được thay đổi thành công. (thay vào đó, khi bạn đã cam kết thay đổi vị trí). –