Значение 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();                                                         
    });

когда я посылаю сигнал, я получаю данные в переменную data = JSON.parse(event.data);

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

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

1 ответ

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

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

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

Другие вопросы по тегам