Angularjs$animate承诺css关键帧动画

Angularjs$animate承诺css关键帧动画,angularjs,ng-animate,angular-promise,Angularjs,Ng Animate,Angular Promise,根据(矿山)的重点: 在AngularJS 1.3中,$animate服务上的每个动画方法在调用时都会返回一个承诺。一旦动画本身完成、被取消或由于动画被禁用而被跳过,则承诺本身将被解决 当$animate返回一个承诺时,它似乎立即得到了解决 为了演示,我创建了一个简单的 以下是相关脚本(单击): 预期: 单击按钮时,元素应添加到DOM中,然后应滑入视图,并显示未解析的文本动画完成后文本应更新为我的承诺已解决 实际: 元素被添加到DOM中,动画被成功触发,但是承诺会立即解析,因此在动画执行时,文本

根据(矿山)的重点:

在AngularJS 1.3中,$animate服务上的每个动画方法在调用时都会返回一个承诺。一旦动画本身完成、被取消或由于动画被禁用而被跳过,则承诺本身将被解决

$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
)