在Angular 1中是否有任何替代方法避免$ timeout

时间:2017-12-15 13:01:47

标签: javascript html angularjs

我正在从我的父控制器广播一个事件并捕获子控制器。因此,当在子控制器中执行监听功能时,我的UI呈现并且我所做的更改没有反映在页面上。当我添加100/200毫秒的$ timeout时,它按预期工作。我需要在呈现UI之后调用该函数。除了$ timeout方法之外,还有什么方法可以做到这一点吗?

$scope.$broadcast('update-field'); // in Parent Controller

//child controller
$scope.$on('update-field', () => { 
   $timeout(function() {
      $scope.exectuteUpdate();
   },200);
});

我需要在渲染UI后调用exectuteUpdate()。

1 个答案:

答案 0 :(得分:0)

您可以使用$scope.$applyAsync

$scope.$on('update-field', () => { 
   $scope.$applyAsync(() => {
   $scope.exectuteUpdate();
   });
});