2016-10-19 7 views
0

$ location.path() 메서드를 사용하여 URL 경로를 반환하여 ng-hide 지시어에 일부 조건문을 작성할 수 있습니다. 그때 삽입

$scope.pathLocation = $location.path(); 

{{pathLocation}} 내 HTML에서 그냥 그것이 올바른 경로를 반환하고 있는지 확인 : 나는 내 컨트롤러에 다음을 만들었습니다. 다른보기를로드 할 때 문제가 발생합니다. pathLocation이 업데이트되지 않습니다. 새 페이지보기에서 브라우저를 수동으로 새로 고치면됩니다. HTML 여기

(function(){ 
    var amApp = angular.module('amApp', ['ngRoute', 'ngCookies','ngAnimate' ]); 

    amApp.controller('WelcomeController', ['$scope', '$location', function WelcomeController($scope, $location) { 
    $scope.pathLocation = $location.path(); 
    }]); 
})(); 

있다 : 내 댓글에서 언급 한 바와 같이

<html lang="en" ng-app="amApp"> 
    <body ng-controller="WelcomeController as welcome"> 
    <nav>menu's here to different views in SPA</nav> 
    {{pathLocation}} 
    <div ng-view></div> 
    </body> 
+0

어떻게 다른보기를로드합니까? '$ location.path (newpath)'를 사용하면 제대로 동작 할 것입니다. 그러나 뷰를로드하는 다른 메소드를 사용하고 있다면 위치를 설정해야 할 수도 있습니다. (보기를로드하는 것이 위치를 변경하는 것과 동일하지 않습니다.) – infiniteRefactor

+0

한 곳에서 값을 할당 할 때 마술처럼 업데이트되는 이유는 무엇입니까? 어떤 이벤트에'pathLocation'을 지정하려고하는 것 같습니다. 아마도'$ locationChangeSuccess' – Phil

답변

1

이 코드에서 아무것도 당신의 pathLocation 속성을 업데이트하지 컨트롤러 :`

여기

내 코드의 축약 버전입니다 .

amApp.controller('WelcomeController', ['$scope', '$location', function WelcomeController($scope, $location) { 
    //$scope.pathLocation = $location.path(); 
    $scope.locationPathFn = $location.path; 
}]); 

는 그 다음 HTML의 기능을 실행합니다 : 범위에 기능을 게시이

$scope.$on('$locationChangeSuccess', function() { 
    $scope.pathLocation = $location.path(); 
}); 
+0

그랬습니다, 고마워요. 예, 앵커 태그와 ng-href를 사용하여 업데이트 중이므로 업데이트하지 않았습니다. 필자는 경로 메서드가 경로 변경으로 자동으로 업데이트되었다고 말했을 때 설명서를 오해했습니다. – ADP

0

를 추가보십시오 $location.path() 기능이 확인됩니다 모든 소화주기에 그런

<html lang="en" ng-app="amApp"> 
    <body ng-controller="WelcomeController as welcome"> 
    <nav>menu's here to different views in SPA</nav> 
    {{locationPathFn()}} 
    <div ng-view></div> 
    </body> 

및 보기가 최신 상태로 유지되었습니다.

관련 문제