javascript - 有没有其他方法可以避免 Angular 1 中的 $timeout

标签 javascript html angularjs

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

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

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

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

最佳答案

您可以使用$scope.$applyAsync

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

关于javascript - 有没有其他方法可以避免 Angular 1 中的 $timeout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47832954/

相关文章:

javascript - 未捕获的类型错误 : Cannot set property 'innerHTML' of null [VueJs]

javascript - 有没有办法在脚本标签中嵌入 Github 托管的 javascript?

javascript - 删除字符串中倒数第二个正斜杠之后的数据

html - Visual Studio 代码无法识别 html 文件

javascript - 两个(独立的)jQuery Tab 插件杀死了我的代码

angularjs - 如何访问我的 Angular Controller 中的 Electron 应用程序对象

javascript - HTML Canvas 的measureText 还很遥远

javascript - 类选择器弄乱了 Angular 2 中表格的渲染

javascript - 如何在 Angularjs 中给出 $this

angularjs - Angular 2 : Inject view/DOM into component constructor