我有一个加载uib轮播的指令。在指令链接函数中,我想在postlink函数中等待,直到轮播完成加载,然后添加一些事件监听器并修改一些东西。我无法找到一种等待旋转木马完成加载的方法。一般的想法是这样的:
scope.$on('$viewContentLoaded', function() {
alert(elem[0].querySelector(".left"));
scope.carouselSpinnerInactive = true;
当在$ viewContentLoaded侦听器内时,警报不会触发。但是,当在侦听器之外时,elem [0] .querySelector(" .left")为空,我相信因为ui.bootstrap还没有完成创建它。我考虑的另一个选择是等待用户与周围div的交互,但这是一个丑陋的黑客并且不能可靠地工作
另外,我尝试过使用:
$timeout(function() {
alert(elem[0].querySelector(".left"));
scope.carouselSpinnerInactive = true;
});
警报在那里正常工作,但事实证明,这也是在旋转木马实际加载之前很好的。我知道这是因为carouselSpinnerInactive移除了一个在旋转木马加载之前占用空间的微调器,并且微调器停用和旋转木马可见之间存在明显的延迟。