首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我只能在ng-view上使用ng-animate,而不能使用ng-repeats?

为什么我只能在ng-view上使用ng-animate,而不能使用ng-repeats?
EN

Stack Overflow用户
提问于 2013-09-06 14:29:14
回答 2查看 155关注 0票数 0

当将Angular 1.2与ngAnimate模块一起使用时,它在ng-view上工作得很好,但它也适用于ng-repeats。并且当有大量数据时,排序后会对性能造成相当大的影响。

有没有办法不让ng-repeats变得活灵活现?我已经尝试过在控制器中使用ng-animate,但它似乎必须在应用程序级别加载,然后才能应用于所有应用程序。

EN

回答 2

Stack Overflow用户

发布于 2013-09-06 15:01:05

我所做的就是在更改控制器中的列表之前使用$animate.enabled( false ),并在不久之后通过$timeout重新启用它。

票数 0
EN

Stack Overflow用户

发布于 2013-09-11 21:03:20

ng-animate将仅基于类进行动画制作,尝试为动画制作唯一的类,并仅将其应用于您的案例中需要它们的位置。

例如:

代码语言:javascript
复制
<div ng-init="items=['a','b','c','d','e','x']">
  <input placeholder="filter" ng-model="f" />
  <div ng-repeat="item in items | filter:f" class="repeat-item">
    {{item}}
  </div>
</div>

然后,在为该ngRepeat项定义实际的CSS动画代码时,CSS选择器代码如下所示:

代码语言:javascript
复制
.repeat-item.ng-enter,
.repeat-item.ng-leave {
  -webkit-transition:0.5s linear all;
  -moz-transition:0.5s linear all;
  -o-transition:0.5s linear all;
  transition:0.5s linear all;
}

.repeat-item.ng-enter,
.repeat-item.ng-leave.ng-leave-active {
  opacity:0;
}
.repeat-item.ng-leave,
.repeat-item.ng-enter.ng-enter-active {
  opacity:1;
}

(摘自YearOfMoo优秀的新ng-animate:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18651303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档