如何从代码中的任何位置检索此动画的承诺?
angular.module('module', ['ngAnimate'])
.animation('.notification', ['$animateCss', function($animateCss) {
return {
enter : function(element, done) {
return $animateCss(element, {
// Animation options
}
}
}
);
使用dom元素上的ng-if
之类的东西成功触发动画。
<div class="notification" ng-if="notifier.active">...</div>
如何在不手动调用enter方法的情况下获得承诺?
答案 0 :(得分:1)
您可以创建服务:
animationServices.animateCss().then(function(data){
//some code
});
然后注册您的服务并从以下任何地方调用它:
mysqli_connect('localhost', 'myuser','mypassword')
答案 1 :(得分:0)
创建一个新的promise并使用返回的对象中的promise
属性立即使其可用,但是在调用enter函数并且动画完成之前不要解析它。 More information here.
var deferredAnimation = $q.defer();
return {
enter: function(element, done) {
$animateCss(element, {
// Animation options
}).then(function() {
deferredAnimation.resolve();
});
},
promise: deferredAnimation.promise
}
答案 2 :(得分:0)
你试过吗?
var animation = $animateCss(element, {
// Animation options
});
var promise = animation.start().getPromise();
- 编辑 -
请记住,如果您希望JS动画仍然可以运行,您需要执行以下操作:
var animator = animation.start();
var promise = animator.getPromise();
return animator;