你要做的是一个指令。该指令将需要简单地为您要闪烁的项目分配一个值,并且将观察自己的值是否发生变化。您可以使用 CSS 来制作动画,并且 Angular 处理 CSS 的方式非常巧妙。你可以像这样创建指令......
module.directive('customDirective', ['$compile', function($compile,) {
return {
transclude: true,
scope: {
resource: '='
},
link: function(scope, element, attrs){
//All the logic for assigning the value here.
scope.flash = true;
}
});
接下来,您将要创建一个可以插入此指令的模板。
<div custom-directive ng-show="flash" class="fadein fadeout" resource="row.getProperty(\'resource\')"></div>
像这样在网格中使用该模板
$scope.gridOptions = {
data: 'dataFromService',
columnDefs: [{field:'column', displayName:'Some Column', cellTemplate:
'<div custom-directive ng-show="flash" class="fadein fadeout"resource="row.getProperty(\'resource\')"></div>'}
],
}
这里更重要的部分是类添加(淡入和淡出)
最后是 CSS 将完成大部分工作。
fadein.ng-hide-remove,
.fadeout.ng-hide-add {
-webkit-transition: 400ms ease-in-out all;
-moz-transition: 400ms ease-in-out all;
-o-transition: 400ms ease-in-out all;
transition: 400ms ease-in-out all;
display: block !important;
}
.fadein.ng-hide-remove,
.fadeout.ng-hide-add.ng-hide-add-active {
opacity: 0;
}
.fadeout.ng-hide-add,
.fadein.ng-hide-remove.ng-hide-remove-active {
opacity: 1;
}
虽然这并不完全是您需要的 CSS,但它会为您提供所需的基本设置。此代码来自一个闪烁的保存按钮,该按钮仅在有人保存资源时出现。