模型更改时如何在 ng-repeat 中运行新元素的动画?当模型更改时,角度会自动创建新元素,在我看来,没有办法知道它(我在文档中没有找到任何事件)。我现在解决了这个问题,这要归功于setTimeout(O, runAnim)
我的自定义指令的链接函数何时执行(它在创建新元素时执行,但在添加到 DOM 之前),因为我期望在将新元素添加到 DOM 之后执行计时器函数(所以它被渲染),但我不确定这是否适用于每个浏览器和每种情况,因为角度内部。有没有更好的方法来获得这种行为?
EDI1:当元素被移除,模型改变时,这将不起作用(如果我想淡出它们)
索引.html
<!DOCTYPE html>
<html ng-app="MyApp">
<head>
<meta charset="utf-8" />
<title>Angular js</title>
<script type="text/javascript" src="js/jquery-2.0.2.min.js"></script>
<script type="text/javascript" src="js/angular.min.js"></script>
<script type="text/javascript" src="js/app.js"></script>
<script type="text/javascript" src="js/Controllers.js"></script>
</head>
<body ng-controller="MyController">
<ul>
<li ng-repeat="user in users" ng-bind="user" my-anim></li>
</ul>
</body>
</html>
控制器.js
function MyController ($scope) {
$scope.users = ['foo', 'bar'];
}
应用程序.js
angular.module("MyApp", [])
.directive('myAnim', function () {
return function (scope, elem, attr) {
elem.hide();
setTimeout(function () {
elem.fadeIn();
}, 0);
}
});