我正在从父 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/