当前位置: 首页 > 面试题库 >

如何在angularjs中将动画与ng-repeat一起使用

归俊
2023-03-14
问题内容

我有一个列表,可以使用ng-
repeat进行迭代:用户可以使用上箭头和下箭头图标与列表项进行交互,单击它们后,我只需更改“列表”中元素的顺序”,这就是角度建议更改模型并自动将更改反映在视图中的原因。

<div ng-repeat="item in list">
{{item.name}} 
<div class="icon-up-arrow" ng-click="moveUp($index);"></div> 
<div class="icon-down-arrow" ng-click="moveDown($index);"></div>
</div>

moveUp中的逻辑:-

$scope.moveUp= function(position){
 var temp=list[position-1];
 list[position-1]=list[position];
 list[position=temp];
};

上面的代码完全可以正常工作,向下移动项目的逻辑与此类似。但是我要解决的问题是如何放置动画?我知道angular会自行处理绑定视图和模型的问题,但是当按下向下箭头图标更新视图时,有什么方法可以放入动画中?


问题答案:

接下来是Marcel的评论:在AngularJS 1.2中,您不需要使用ng-animate指令。代替:

  1. 包括angular-animate[-min].js
  2. 使您的模块依赖ngAnimate
  3. 使用类.ng-enter和类.ng-enter-active在CSS中定义转换。
  4. ng-repeat照常使用。

HTML:

<div ng-app="foo">
    <!-- Set up controllers etc, and then: -->
    <ul>
        <li ng-repeat="item in items">{{item}}</li>
    </ul>

JavaScript:

angular.module('foo', ['ngAnimate']);
// controllers not shown

CSS:

li {
    opacity: 1;
}
li.ng-enter {
    -webkit-transition: 1s;
    transition: 1s;
    opacity: 0;
}
li.ng-enter-active {
    opacity: 1;
}

在(其他人的)Plunker中进行演示。

有关各种CSS类的进度的详细信息,请参阅有关$
animate
的文档。



 类似资料:
  • 问题内容: 我想在ng-repeat中使用正则表达式。我尝试了以下代码,但无法正常工作。 我有用户数组,我只想显示类型为c5的用户。 如果我用 然后它也以“ ac5x”类型显示用户,因为它包含c5。 我怎么解决这个问题?也许还有另一种解决方案。 谢谢! 问题答案: Tosh提到的内容应该对您有用! 如果您发现自己想更频繁地使用正则表达式进行过滤,则可以创建一个自定义过滤器。像这样的小提琴使您可以指

  • 问题内容: 我想使用ngMap将Google Maps添加到我的应用程序中。 演示是“静态的”,因为它们只有硬编码的HTML。我希望我的代码是“动态的”,因为它会定期要求服务器查看其数据库,并向我返回一堆坐标以进行绘制,该坐标将随时间而变化。我希望这是清楚的;如果没有,请询​​问更多细节。 我修改了ngmap标记演示,以便每两秒钟生成一些随机的经度/纬度坐标(而不是像最终应用程序那样去我的服务器)

  • 问题内容: 我知道我们可以轻松地对json对象或数组使用 ng-repeat ,例如: 但是如何将ng-repeat用于字典,例如: 我想在用户字典中使用它: 可能吗?。如果是,我该如何在AngularJs中做到这一点? 我的问题的示例:在C#中,我们定义如下字典: 是否有内置函数可以像c#中那样从字典返回值? 问题答案: 您可以使用 请参阅ngRepeat文档。示例:http://jsfiddl

  • 问题内容: 我想问你是否可以帮我这个忙。 我在这里用我的问题创建了一个jsfiddle 。我需要使用ng-model =“ my _ {{$ index}}”方式在ng-repeater中动态生成一些带有ng-model的输入。 在jsfiddle中,您可以看到一切正常,直到我尝试动态生成它为止。 HTML将是: 还有javascript … 你能给我个主意吗? 非常感谢。 问题答案: 它能解决您

  • 问题内容: 我正在开发一个页面,我需要在其中显示一些框(使用),其中包含频道信息以及显示位置(城市)。 我面临的问题是当我重复第二遍时: 这应该获得第一个ng-repeat的$ index值,并使用显示频道的位置创建一个新数组。它确实做到了。但是,当我使用此数组应用第二个ng- repeat时,它无法正常工作。 说我的html看起来像这样(PS:我需要使用索引值而不是因为我将这些框放到列中) JS

  • 问题内容: 我正在尝试做类似的事情: AngularJs部分: 但是不知何故,它向我展示了所有物品。如何筛选(键,值)? 问题答案: Angular 过滤器只能通过angular的API应用于数组,而不能应用于对象- “从数组中选择项的子集,并将其作为新数组返回。” 您在此处有两个选择: 1)移至数组或 -2)预过滤项目,如下所示: 并在控制器上: jsfiddle :http : //jsfid