从控制器更新时,ng-bind值不会第二次更新

时间:2016-12-29 14:22:19

标签: angularjs opentok 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);

中的数据

我总是要使用$ scope。$ apply()另外,它不会第一次绑定值,但第二次它根本不起作用。

我已尝试$ timeout,$ digest但根本没有任何作用,任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

当我们没有角度时,事情就不起作用了。因此,如果您在jQuery或任何其他库中执行某些操作,则angular将无法知道已更改的内容。为此,您必须使用$ apply或$ digest

明确告诉角度
$scope.$apply(function () {
    $scope.requestedCall.reason = data.complain_name;
    $scope.requestedCall.hname = data.username;
    $scope.PlayRingtone();
    $scope.showModel();   
});

让我知道它是否有效!