AngularJS - 动画完成后的调用控制器方法

时间:2014-11-04 12:38:21

标签: javascript angularjs

我有一个按钮和一个隐藏的div。当我单击按钮时,div将扩展宽度。到目前为止,这是我的HTML:

<div ng-controller="PageController">
   <button ng-click="togglePage()>Show Details</div>
   <div class="page-slide-animation" ng-show="page">
   </div>
</div>

我的控制器提供以下方法:

$scope.togglePage= function() {
    $scope.page = !$scope.page;
};

这是我的动画:

app.animation('.page-slide-animation', [function() {
    return {
        beforeAddClass : function(element, className, done) {
            if(className == 'ng-hide') {
                jQuery(element).animate({width: 'toggle'}, function() {
                    done();
                });
            }
        },
        removeClass : function(element, className, done) {
            if(className == 'ng-hide') {
                jQuery(element).animate({width: 'toggle'}, function() {
                    done();
                });
            }
        }
    };
}]);

到目前为止,此工作正常。我需要做的是在动画结束后在PageController中调用控制器方法。执行此操作的最佳方法是什么(使用控制器中的超时为动画注入服务,...)?

2 个答案:

答案 0 :(得分:0)

一种可能的解决方案是使用$ rootScope发出一个事件。$ emit并将其捕获到控制器中。

答案 1 :(得分:0)

尝试使用$ scope。$ emit并使用$ scope。$ on

在控制器中捕获它