我在应用程序中使用角度与ui-router一起使用。我希望能够在ui-view的动画完成时执行一些代码。我已经读过$ stateChangeSuccess应该可以实现这一点,但它似乎在每个动画之前触发。目前,我使用$ timeout,时间等于动画持续时间。我知道这不是一个很好的解决方案。任何人都有更好的建议如何解决这个问题?
这是我目前的代码(指令):
app.directive('lazyBackground', ['$timeout', function($timeout) {
return {
restrict: 'A',
link: function(scope, element, attrs) {
var img = new Image();
img.onload = function() {
element.css({
'background-image': 'url(' + this.src + ')'
});
element.addClass('lazy-loaded');
}
$timeout(function() {
img.src = attrs.lazyBackground;
},500);
}
}
}]);
从代码中可以看出,我在新的ui-view动画完成后试图延迟加载图像。