ng-animate对ng-if进行“输入”但不是“离开”当stateparams改变时

时间:2013-07-02 06:22:39

标签: angularjs angular-ui ng-animate

在我的一个部分中,我这样做:

<!-- Lesson Details -->
<div class="panel" id="change_subject" ng-if="$state.includes('dashboard.create.lessons')" ng-animate="{enter: 'basic-animation-enter', leave: 'basic-animation-leave'}">
  <div class="panel_header">
    <div class="panel_title">
      <h5>
        Lesson Details
      </h5>
    </div>
  </div>
</div>

$ state.includes直接来自angular-ui路由器示例。当然,我正在使用角度ui。

这是我的appState函数:

state('dashboard.create.lessons.detail', {
        // parent: 'lessons',
        url: '/{lessonId}',
        views: {
          'details@dashboard.create': {
            templateUrl: "/app/partials/create.detail.html",
            controller: ['$scope', '$stateParams', 'curriculumHash', function(scope, stateParams, curriculumHash){
              curriculumHash.sstHash().then(function() {
                scope.selectedContent = findInList(scope.sstArray, stateParams.lessonId);
                scope.original = angular.copy(scope.selectedContent);
               });
            }],
          }
        }
      })

非常普通。

当为每个新的stateParam重新加载partial时,ng-if会创建一个新的DOM元素(使用新的Hash $$)。每当它调用&#34;输入&#34;动画没问题。但是被破坏的DOM元素并没有调用&#34;离开&#34;。

如果我没有做错任何事情,那么我应该要求更好的方法 - 也就是说,如何使用新参数重新加载视图动画......

谢谢!

==========更新========== 这是一个JSFiddle。不会从上面的代码中借用很多东西,但是我非常肯定。 http://jsfiddle.net/morgs32/xPxkX/1

1 个答案:

答案 0 :(得分:2)

您使用的1.1.5版本名称为1.1.4

查看此文档:NgAnimate 1.1.5

在这个网站上,有很多例子:Ng-Animate Slider Effect

新的小提琴使用css:http://jsfiddle.net/fzKVN/1/