각도 $위치패스가 기능하지 않음
이것과 비슷하지만 다른 질문이 있습니다.
여기서 핸들러의 이벤트청취자를 추가하려고 합니다.
app.run(function ($location, $window, $rootScope) {
$window.addEventListener('message', function(e) {
$location.path("/abc");
console.log($location.path()); // this prints "/abc" as expected
$rootScope.$apply(); // this has no effect
$scope = angular.element(document).scope(); // this is the same as $rootScope
$scope.$apply(); // so this also has no effect
});
});
그$location.pathAngular가 인식하지 못하고 있습니다.
또 다른 질문은 내가 전화해야 한다는 것이다.$apply()스코프에는 있지만, 제가 이용할 수 있는 유일한 스코프는$rootScope및 호출$apply()효과가 없는 것 같아요
답변에 대한 코멘트는 스코프를 얻을 수 있음을 시사합니다.
$scope = angular.element(document).scope()
하지만 이것은 나에게$rootScope안 먹히네요
어떻게 하면 각도가 바뀌어 다시 초점을 맞출 수 있을까요?$location.path()를 등록하는 더 좋은 방법이 있나요?message경로를 변경할 수 있는 방법으로 콜백할 수 있습니까?
식을 함수로 실행해야 합니다.$apply()같은 방법
app.run(function ($location, $window, $rootScope) {
$window.addEventListener('message', function(e) {
$rootScope.$apply(function() {
$location.path("/abc");
console.log($location.path());
});
});
});
매뉴얼을 참조하십시오.ng$rootScope($rootScope 。스코프
검정성을 향상시키려면$console대신console그 물체도 주입할 수 있습니다.
인정된 솔루션은 적절한 방법이 아닙니다.($apply()가 하는) 다이제스트 사이클을 간섭할 필요는 없습니다.
가장 좋은 방법은 메인 컨트롤러에서 $location.path()를 호출하는 것입니다.사용하다$emit - $onMainController로 전송하여 $location을 호출하는 함수입니다.경로입니다.다이제스트 사이클을 방해하지 않고 완벽하게 리디렉션됩니다.이게 도움이 됐으면 좋겠어요.
저도 같은 문제가 있었습니다만, 제 실수는 제 아이템에서 ng-click 디렉티브를 잘못 실행하고 있었다는 것입니다.
나쁜 예:
<a **href="#"** ng-click="myFunctionChangeLocationPath()">...
예:
<a ng-click="myFunctionChangeLocationPath()">...
그러면 문제를 해결할 수 있습니다!
$timeout이 없는 솔루션이 있습니다.
$state.go를 사용하기 전에 기본 상태로 리다이렉트하지 않도록 합니다.
event.preventDefault();
$state.go('root');
언급URL : https://stackoverflow.com/questions/19359553/angular-location-path-not-working
'programing' 카테고리의 다른 글
| 내 플러그인 페이지의 관리자 URL (0) | 2023.03.17 |
|---|---|
| Jest를 사용하여 소품으로 React 구성 요소 시뮬레이션 (0) | 2023.03.17 |
| 문자열 변수 덤프로의 JSON (0) | 2023.03.17 |
| Angular를 사용하여 파일을 다운로드하는 방법JS와 MVC API 호출? (0) | 2023.03.17 |
| MongoDB Java 드라이버 MongoOptions를 실가동용으로 설정하는 방법 (0) | 2023.03.12 |