AngularJS在ng repeat中的新项上添加CSS类
AngularJS add CSS class on new item in ng-repeat
这是我的列表视图。
<a href="#/">back...</a>
<ul>
<input type="text" ng-model="search">
<li ng-repeat="item in items | filter:search | orderBy:'date'">
{{ item.ID }} - {{ item.heading }} - {{ item.date | date:"dd.MM.yy" }}
<button ng-click="deleteItem(item.ID)">del</button>
</li>
<form>
<input type="text" ng-model="itemName">
<input type="date" min="{{ date }}" max="{{ maxDate }}" value="{{ date }}" ng-model="itemDate">
<button ng-click="addItem()">add</button>
</form>
</ul>
单击后,我的控制器会向视图中添加一个新项目,效果很好。现在我只想用css3为新项目设置动画。因此,新项目需要一个类。我如何用angular实现这一点?
这应该将类the-class
动态分配给列表的最后一个元素:
<li ng-class="{'the-class': $last}" ng-repeat="item in items | filter:search | orderBy:'date'">
{{ item.ID }} - {{ item.heading }} - {{ item.date | date:"dd.MM.yy" }}
<button ng-click="deleteItem(item.ID)">del</button>
</li>
如果您使用的是Angular 1.1.5,您可以使用ngAnimate enter事件,它正是为这种情况设计的。
看看http://www.nganimate.org/和http://code.angularjs.org/1.1.5/docs/api/ng.directive:ngAnimate
如果您使用函数添加项目,您还可以设置一个变量,以便在将项目添加到列表时知道最后插入的Id
首先,你可以看到我在这里做了什么http://jsfiddle.net/DotDotDot/Eb2kR/
我刚刚创建了一个lastInsertedId
变量,我用它在ng repeat:中添加一个类
<span ng-class='{lastinserted: item.ID==lastInsertedId}'>{{ item.ID }} - {{ item.heading }} - {{ item.date | date:"dd.MM.yy" }}</span>
我不知道你是如何实现addItem方法的,你的ID是什么,所以我创建了自己的方法,我假设你的ID都是唯一的数字,但它可以与任何东西一起使用(希望你能找到一组唯一的数据)
$scope.addItem=function(){
var dd=new Date($scope.itemDate);
$scope.items.push( {"ID":$scope.items.length+1, "heading":$scope.itemName, "date":dd.getTime()});
$scope.lastInsertedId=$scope.items.length;
}
我更改了上次插入的id,这将把所选类应用于项目
您也可以在delItem()
方法中取消设置lastInsertedId
值
如果你有一个更困难的逻辑(这里我假设你有唯一的ID),你也可以在ng-class
中使用一个函数。在这里,在我的例子中,编码并不困难:
$scope.amITheOne=function(item){
return item.ID==$scope.lastInsertedId;
}
然后
<span ng-class='{lastinserted: amITheOne(item)}'>
简单的逻辑不会改变太多,但你完全可以有一个基于ID、名称和日期的逻辑,例如
玩得开心
相关文章:
- 如何添加CSS&JavaScript进入Windows窗体应用程序C#.net
- 对于每个json结果,使用类jquery添加css
- 为未标记的文本添加CSS样式
- 在WordPress中使用JavaScript在html元素上添加css类
- jQuery检查CSS宽度是否大于0,然后添加CSS属性
- 单击禁用的按钮添加 CSS
- 在 Twig Child 中添加 CSS 和 JavaScript
- 更改现有的css属性,并通过删除或添加css元素来使用它
- Ember.js为特定的模型id添加css类
- 我可以用添加css吗!重要的是,只使用jquery
- Regex用于添加CSS类
- 如何在一个表的输入中搜索一组特定的值,而不是另一个表's id(s)值以添加css
- 使用JQuery添加css属性悬停
- 通过程序添加CSS渐变作为背景图像
- 使用JS添加CSS规则
- 如何为Fabric.js中的文本添加CSS属性
- IE7/8未添加css属性'top'动态地作为内联样式
- 通过jquery损坏的旋转木马添加css样式
- Node.js Express应用程序:如果存在cookie,则从服务器端向元素添加CSS类
- 添加css转换时间以使用javascript切换类