我正在从我的父控制器广播一个事件并捕获子控制器。因此,当在子控制器中执行监听功能时,我的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()。
答案 0 :(得分:0)
您可以使用$scope.$applyAsync
$scope.$on('update-field', () => {
$scope.$applyAsync(() => {
$scope.exectuteUpdate();
});
});