在我的 Controller 中,我设置了一个名为 diffData
的 scope
变量,如下所示:
$scope.diffData = $scope.diffSync.data;
在我看来,我绑定(bind)到 diffData
的 num 属性,如下所示:
<div class="sync-data"> num = {{diffData.num ? diffData.num : 0}}<div>
当我收到 $broadcast
事件新同步数据
时,我将旧的 diffData
替换为具有更新后的 num 的新数据,如下所示:
$scope.$on('new synced data', function(event, data) {
console.log('new synced data event', data);
$scope.diffData = data;
});
问题是新的 num
没有在 View 中更新。我该如何解决这个问题?
最佳答案
您尝试过$scope.$apply
吗?使用 $scope.$apply 更改作用域变量。
$scope.$on('new synced data', function(event, data) {
console.log('new synced data event', data);
$scope.$apply(function(){
$scope.diffData = data;
});
});
关于javascript - $scope.$on 事件后 $broadcast 后 Angular 范围未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36565353/