2014-04-23 2 views
0

에서 작동 나는이 같은 URL 예상 응용 프로그램 :호출 각도 자원 기능은 초기화 만 초기화

http://localhost:8000/admin/patients?uuid=643fa655-b82a-4c02-b445-62d2c966867d 

을 그래서 만약 UUID입니다 현재 다음과 협력하고 환자 데이터를로드 코드 :

var loadPatientChart = function(uuid){ 
    PatientsResource.getPatient({ 
     patientID:uuid 
    }, 
    function(patient){ 
     $scope.patient = patient.data[0]; 
     console.log($scope.patient); 
    }); 
}; 

if ("uuid" in $location.search()) { 
    var obj = $location.search(); 
    loadPatientChart(obj.uuid); 
} 

의 I는 데 문제가 내가 사용하여 동일한 컨트롤러에 나중에 다시 loadPatientChart를 호출 할 필요가 있습니다 :

var unbind = $scope.$on('emmittedPatientUuid', function(event, uuid) { 
    console.log('emmittedPatientUuid'); 
    loadPatientChart(uuid); 
}); 
$scope.$on('$destroy', unbind); 

이 함수를 호출하면 데이터가 반환되고 $ scope가 batarang을 사용하여 업데이트되지만 뷰가 업데이트되지 않음을 확인할 수 있습니다. 변경 사항은 표시되지 않습니다. init에서 호출을 제거하면 emit 함수가 예상대로 계속 작동합니다. 기쁨없이 함수 끝에 $ apply를 호출 해 보았습니다. 어떤 도움을 주시면 감사하겠습니다.

답변

0

이렇게하면 되나요?

function(patient){ 
    $scope.$apply(function(){ 
     $scope.patient = patient.data[0]; 
     console.log($scope.patient); 
    }) 
}); 
+0

나는이 오류를 받고 있어요 예 :. 오류 : [$의 rootScope : inprog] $ 이미 진행 소화 HTTP ://errors.angularjs.org/1.2.16/$rootScope/inprog?p0=%24digest – krosullivan

+0

범위가 업데이트되면 분명히 $ digest 문제 '$ scope. $ apply' 또는'$ scope. $ digest'가 수정되어야합니다 그것 – maurycy

+0

그래,하지만 내 첫 번째 직감했지만 나는 $ 범위와 $ 범위를 모두 시도했다. $ 당신이 대답뿐만 아니라 다른 유사하지만 캔트 그것을 해독하는 것 같아. 오류 링크는 타임 아웃에서 줄 바꿈을 제안하지만 그 중 하나는 작동하지 않습니다. – krosullivan

0

은 바보 같은 실수 밝혀졌습니다. 나는 $ rootScope을 사용 했어야 방송은 $ rootScope에 있던대로 $ 대신 방출

var unbind = $rootScope.$on('emmittedPatientUuid', function(event, uuid) { 
    loadPatientChart(uuid); 
}); 
$scope.$on('$destroy', unbind); 
+0

$ rootScope을 사용해서는 안됩니다. 방송을 사용 했습니까, 또는 방출 했습니까? 이벤트 이름'$ rootScope. $ on ('emmittedPatientUuid', function (event, uuid)) {'부모로부터 자식까지 나무 아래에서 방송을 보내는 동안 이벤트를 내보내고 이벤트를 내 보냅니다. 어떤 감각 – maurycy