URL 막대의 변경 사항을보고이를 기반으로 특정 작업을 수행해야합니다. 변경 사항을보기 위해 시계를 추가하는 가장 좋은 방법은 무엇일까요? 당신이 당신의 컨트롤러에서 $ 위치 개체를 요청했다고 가정
5
A
답변
12
이벤트 그들은 단지 어떤 이유로 문서화하고, 존재한다. $locationChangeStart
및 $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);
});
또는 앤더스 제안대로 $는 $ 시계의 첫 번째 인수로 함수를 전달하여 원하는 값을 볼 수 있습니다 :
다음과 같은 이벤트를 시도하지만
scope.$watch(function() { return $location.path(); }, function(newLoc, oldLoc){
console.log(newLoc, oldLoc);
});
이렇게하면 $ digest에 약간의 오버 헤드가 생깁니다.
1
, 당신은 이런 식으로 작업을 수행 할 수 있습니다
$scope.$watch(function() { return $location.path() }, function() {
// Do stuff when the location changes
});
관련 문제
- 1. angular.js에서 자동 완성 사용
- 2. 단위 Angular.js에서 컨트롤러 테스트
- 3. 라우팅이 Angular.js에서 작동하지 않습니다
- 4. Div가 angular.js에서 조정 가능
- 5. Angular.js에서 특정 문자열을 제거해야합니다.
- 6. 템플릿은 Angular.js에서 어떻게 작동합니까?
- 7. angular.js에서 templating - 상속
- 8. angular.js에서 $ http를 사용하는 공장
- 9. Express.js의 Angular.js에서 파일 다운로드
- 10. angular.js에서 모든 컨트롤러로드
- 11. Angular.js에서 WOW.js를 초기화하십시오.
- 12. angular.js에서 쿠키를 삭제하는 방법
- 13. angular.js에서 ajax 페이지 바인딩하기
- 14. 날짜가 Angular.js에서 올바르게 정렬되지 않았습니다.
- 15. angular.js에서 html 양식을 지우려면 어떻게해야합니까?
- 16. Angular.js에서 $ stateParams는 어디에 설정되어 있습니까?
- 17. Angular.js에서 $ http.get 또는 $ http.jsonp 호출하기
- 18. angular.js에서 연결 플래시 메시지에 액세스
- 19. angular.js에서 father 범위 변수 사용하기
- 20. Angular.js에서 선택한 객체 속성에 액세스하십시오.
- 21. angular.js에서 템플릿을 동적으로 생성하는 방법
- 22. Angular.js에서 같은 컨트롤러의 두 스코프 가져 오기
- 23. Angular.js에서 두 개의 컨트롤러를 결합하는 방법은 무엇입니까?
- 24. $ scope의 모든 변수가 Angular.js에서 정의되지 않았습니다.
- 25. Angular.js에서 검색된 JSON 객체를 사용할 수 없습니다.
- 26. angular.js에서 ASP.NET 번들링 및 축소가 발생하지 않습니다.
- 27. Angular.js에서 String을 사용하여 변수를 올바르게 같게하는 방법
- 28. provider 등록 및 angular.js에서 모듈 구성의 중요성
- 29. angular.js에서 이벤트를 동적으로 추가 및 제거합니다.
- 30. angular.js에서 select를 사용하여 $ filter를 사용하는 방법
감사합니다. @blesh. 두 사건이 언제 발령되는지 그리고 그 사건의 차이점을 확인하려고합니다. 어떤 아이디어? – Lior
$ location의 초기화 코드에 모두 설정되어 있습니다. [GitHub에서 소스를보십시오] (https://github.com/angular/angular.js/blob/master/src/ng/location.js). $ locationChangeStart에 대해 CTRL + F 만 누르면됩니다. 기본적으로 $ watch() 메서드가 제안한 것과 동일하지만 이미 설정되어 있으므로 오버 헤드가 적습니다. –
간단히 말해'$ locationChangeStart'가 먼저 발생하고 전달 된 이벤트 객체에서'preventDefault()'를 사용하여 변경을 막을 수있는 옵션을 제공합니다. '$ locationChangeSuccess'는 위치가 성공적으로 변경된 후에 시작됩니다. (오히려 위치 변경에 전념 할 때). –