ng-значение привязки не обновляется второй раз при обновлении с контроллера

я пытаюсь привязать значение в метке, когда я получаю сигнал в сеансе.
для первого он показывает значения в метке, но когда я посылаю сигнал во второй раз, он показывает пустую метку и не обновляет значение.

код, который я использую

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);

я всегда должен использовать $ scope.$apply () другое мудрое это не связывает значение в первый раз, но во второй раз это не работает вообще.

я пробовал $timeout, $digest, но ничего не работает вообще,любая помощь была бы оценена.

1 ответ

  1. Когда мы находимся вне углового, вещи не работают. Так что если вы делаете что-то в jQuery или любой другой библиотеке угловой не будет знать, что было изменено. Для этого вы должны сообщить angular явно с помощью $apply или $digest

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

    Дайте мне знать, если это работает!