2013-08-20 2 views
0

최근 URL을 업데이트하고 페이지를 새로 고침하지 않고 페이지를 업데이트해야하는 문제가 발생했습니다. 혼란스러워? 더 설명해 드리겠습니다. 데이터 테이블 (ng-grid 사용)이 있고 행 1을 클릭하면 하나가 출력되고 페이지를 다시로드하지 않고 url을 'currentUrl/1'로 변경하면됩니다. 그런 다음 4 행을 클릭하면 4가 출력되고 url은 'currentUrl/4'로 변경됩니다. 이것을 할 각도로 가능합니까? 내 페이지에 내가 행을 클릭 할 때마다 다시로드하지하려면, 나는, 내가 원하는 모든 것을 않습니다, 페이지가 다시로드하지 않는 URL을 변경,하지만 지금은 각 해당 번호를 업데이트되지 않습니다Angularjs/Javascript 페이지를 새로 고침하지 않고 URL을 변경하고 화면을 업데이트하십시오.

var lastRoute = $route.current; 
    $scope.$on('$locationChangeSuccess', function(event) { 
     $route.current = lastRoute; 
    }); 

을 넣어. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+0

확인이 : https://github.com/angular-ui/ui-router –

+0

덕분에,하지만 난 찾고 있어요 수정이 안정되어 있고, 문서에, 그것을 말한다 아니다. –

답변

0

숫자를 인쇄하는 코드 부분을 보는 것이 도움이되지만 경로를 새로 고치지 않고 URL을 변경하면 코드가 잘 보입니다.

더 많은 정보가 없으면 어둠 속에서 컨트롤러가 $scope 변수를 업데이트하고 있지만이 업데이트는 각도로 적용되지 않습니다. 과 같이 변수 업데이 트를 포장

봅니다 :

$scope.$apply(function() { 
    $scope.numberToPrint = newNumber; 
}); 

$scope.$apply 전화의 기본 개념은 수동으로 변수를 듣고 어떤 바인딩 업데이트로 각도 동축 케이블해야한다는 것입니다. 이것은 일반적으로 처리되어야하지만, 일어날 가능성이있는 것은 경로 변경이 발생하지 않도록함으로써 Angular 다이제스트가 실제로 새 변수를 가지지 않는다는 것입니다.

Here is an article which can explain $apply better.

+0

나는 실제로 무슨 일이 일어나고 있는지 완전히 이해하지 못하기 때문에 작동하는 샘플 코드를 제공 할 수 없습니다. 그러나 '$ digest already in progress'오류로 인해 $ scope. $ apply가 작동하지 않았습니다. 그리고 언제 내 location.pySuccess로 앱을 돌릴 때 내 $ watch 함수 (다음 댓글)를 실행하지 않을 것이라고 생각하지만 내 프로그램에서 위치 정보에 주석을 달면 $ watch 함수를 통해 실행됩니다 (console.log를 그곳에). 그것이 무엇인지에 대한 enouph 정보입니까? –

+0

$ scope. $ watch (function() {return selectedPartFactory.part.id}, function (n) { $ http.get (afHttp.baseUrl + "/"+ $ scope.grid.name + "/"+ n) 일단 .success (기능 (데이터) { //$log.log($scope.grid.name) = $ scope.grid.data 데이터; }) ; }); –

관련 문제