在异步更改ng-if条件时,ng-if中的ng-animate不起作用(在回调函数中)

时间:2014-08-12 06:32:35

标签: angularjs ng-animate

如果在正常功能中更改ng-if条件,我可以使ng-animate在ng中工作,例如

我的观点:

 <div ng-if="!show">
   <a ng-click="showWorld()">Hello</a> 
 </div>
 <div ng-if="show" class="animation">
   Hello world!
 </div>

我在指令中的功能:

 scope.showWorld = function() {
     scope.show = true;
 }

当我调用showWorld()函数来改变ng-if条件,Hello世界时,上面会有效!将出现动画,但如果我这样做:

 scope.showWorld = function() {
     Post.test(params, function(){
        scope.show = true;   
     })
 }

Post是角度$资源,例如: $resource('api/post', {}, {test: {method: 'POST'}})

并且scope.show仍将被更改并且Hello world!仍然出现,但动画无效...

我在网上搜索了很长时间但找不到答案,有人可以告诉我原因吗?

非常感谢!!

1 个答案:

答案 0 :(得分:0)

你可能需要一个$ scope。$ apply()调用你的动作函数,例如:

scope.showWorld = function() {
     Post.test(params, function(){
        $scope.$apply(function () {
            scope.show = true;   
        });  
     })
 }

您也可以使用$scope.$evalAsync(function(){})作为替代