完成ui-view动画时的回调

时间:2014-09-25 10:17:02

标签: angularjs angularjs-directive angular-ui-router ng-animate

我在应用程序中使用角度与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动画完成后试图延迟加载图像。

0 个答案:

没有答案