Angularjs$animate承诺css关键帧动画
根据(矿山)的重点: 在AngularJS 1.3中,$animate服务上的每个动画方法在调用时都会返回一个承诺。一旦动画本身完成、被取消或由于动画被禁用而被跳过,则承诺本身将被解决 当Angularjs$animate承诺css关键帧动画,angularjs,ng-animate,angular-promise,Angularjs,Ng Animate,Angular Promise,根据(矿山)的重点: 在AngularJS 1.3中,$animate服务上的每个动画方法在调用时都会返回一个承诺。一旦动画本身完成、被取消或由于动画被禁用而被跳过,则承诺本身将被解决 当$animate返回一个承诺时,它似乎立即得到了解决 为了演示,我创建了一个简单的 以下是相关脚本(单击): 预期: 单击按钮时,元素应添加到DOM中,然后应滑入视图,并显示未解析的文本动画完成后文本应更新为我的承诺已解决 实际: 元素被添加到DOM中,动画被成功触发,但是承诺会立即解析,因此在动画执行时,文本
$animate
返回一个承诺时,它似乎立即得到了解决
为了演示,我创建了一个简单的
以下是相关脚本(单击):
预期:
单击按钮时,元素应添加到DOM中,然后应滑入视图,并显示未解析的文本
动画完成后文本应更新为我的承诺已解决
实际:
元素被添加到DOM中,动画被成功触发,但是承诺会立即解析,因此在动画执行时,文本将读取我的承诺已解析
我做错了什么?您是否可以在不使用
$timeout
或类似工具的情况下创建一个可用的插入叉?您当前的咖啡脚本编译为:
return scope.enter = function() {
var $elem;
$elem = angular.element('<div class="donkey">Not resolved</div>');
return $animate.enter($elem, element).then($elem.html('My promise is resolved!'));
};
最后一部分将编译为:
return $animate.enter($elem, element).then(function() {
return $elem.html('My promise is resolved!');
});
如果您不想在编译后的代码中返回:
$animate.enter($elem, element).then(->
$elem.html('My promise is resolved!')
return
)
演示:完全正确,缺少()->
是我的错别字。不知怎的,我在做密码笔的时候也重复了一遍!谢谢
$animate.enter($elem, element).then(->
$elem.html('My promise is resolved!')
)
return $animate.enter($elem, element).then(function() {
return $elem.html('My promise is resolved!');
});
$animate.enter($elem, element).then(->
$elem.html('My promise is resolved!')
return
)