2016-12-29 1 views
0

세션에서 신호를 받으면 레이블에 값을 바인딩하려고합니다. 처음에는 label에 값을 표시하지만 두 번째 신호를 보내면 빈 레이블이 표시되고 값을 업데이트하지 않습니다. 내가 사용하고컨트롤러에서 업데이트 할 때 ng-bind 값이 두 번째로 업데이트되지 않습니다.

코드

HTML

<div class="modal-content"> 
      <h4>Incoming Call From...</h4> 
      <label class="alignCenter incomingReason">{{requestedCall.reason}}</label> 
      <label class="alignCenter">{{requestedCall.hname}}</label> 
</div> 

컨트롤러

session.on("signal:chat", function (event) {    
        var data = JSON.parse(event.data); 
        $scope.requestedCall.reason = data.complain_name; 
        $scope.requestedCall.hname = data.username; 
        $scope.PlayRingtone(); 
        $scope.$apply(); 
        $scope.showModel();               
    }); 

내가 신호를 보낼 때, 내가 VAR data = JSON.parse(event.data);

에서 데이터를 가져 난 항상 $ 범위를 사용해야합니다 . $ apply() other wise 그것은 처음으로 값을 바인딩하지 않지만 두번째로는 값을 바인딩합니다. t는 전혀 작동하지 않습니다.

나는 $ timeout, $ digest를 시도했지만 아무것도 작동하지 않는다. 어떤 도움을 주시면 감사하겠습니다.

+0

사용중인 Angular 버전을 지정하는 것이 도움이됩니다. –

+0

안녕하세요, 저는 각도 적용 v1.4.3 – Vikas

답변

0

우리가 각도를 벗어나면 모든 것이 작동하지 않습니다. 따라서 jQuery 나 다른 라이브러리에서 무언가를하고 있다면 각도가 변경된 것을 알 수 없습니다. 이를 위해 $ apply 또는 $ digest를 사용하여 명시 적으로 각도를 말해야합니다.

$scope.$apply(function() { 
    $scope.requestedCall.reason = data.complain_name; 
    $scope.requestedCall.hname = data.username; 
    $scope.PlayRingtone(); 
    $scope.showModel(); 
}); 

작동하는 경우 알려주세요.

+0

을 사용하고 있습니다. 제 질문에 이미 $ apply 및 $ digest를 사용했으며, 처음 작동하고 두 번째로 작동하지 않습니다. – Vikas

관련 문제