Значение 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();
});
Дайте мне знать, если это работает!