2015-01-20 5 views
1

저는 AngularJS로 시작하고 새로운 컨트롤러를 설정할 때 메서드가 호출되는 방식과 관련된 질문이 있습니다.

$routeProvider.when('/myApp/:id', {controller: 'MyAppCtrl'}); 
  • 이 2 개 개의 컨트롤러 코드의 차이는 실행 컨텍스트와 $ 범위의 라이프 사이클에 대해 무엇 :

    이의 내가 같이 구성된 경로가 있다고 가정 해 봅시다?

  • 부분로드가 실행 된 후 각 대안이 몇 번 실행됩니까?

.

app.controller('MyAppCtrl',function($scope,$routeParams){ 
    $scope.$on('$routeChangeSuccess', function(){ 
     $scope.data = getNewData($routeParams.id); 
    }); 
    function getNewData(id){ 
     ... 
    } 
}); 

그리고 :

app.controller('MyAppCtrl',function($scope,$routeParams){ 
    $scope.data = getNewData($routeParams.id); 

    function getNewData(id){ 
     ... 
    } 
}); 

대단히 감사합니다. 제 생각에는

답변

1

, 나는 경로 설정 대신에 당신이 옵션을 다시 귀하의 질문에

에서 해결을 사용할 수 있습니다.

컨트롤러가 부분로드 된 후 한 번만 실행됩니다.

이 두 사례는 거의 동일한 일을합니다. 첫 번째 이벤트는 두 번째 이벤트와 비교되는 추가 단계 인 이벤트에 의존합니다.

+0

고마워요. 방금 내 질문을 명확히하는 해결 방법에 대해 배웠습니다. 두 가지 대답은 내 질문에 대한 답변이지만, 경로 구성에서 해결 방법을 사용하는 데 조금 더 도움이되기 때문에 답변으로 표시하고 있습니다. 문제가 해결되었습니다. @msohns와 maxisam에게 다시 한 번 감사드립니다. – EdwinF

0

$ on은 이벤트에 리스너를 할당합니다. 의미 $ broadcast ('routeChangeSucess')를 보내서 수동으로 $를 트리거 할 수 있습니다.

두 번째 코드는 한 번 실행됩니다. 부분 코드가로드됩니다.

컨트롤러에 대해 $를 사용하면로드가 잘되지 않습니다.

관련 문제