角度最佳实践。控制器动作触发动画

时间:2015-07-05 12:39:05

标签: javascript angularjs animation using-directives

我希望在等待(轮询)服务器时显示一些进度循环。我为此使用了一些jquery circle-progress插件。我想弄清楚有条件地开始循环进度的最常用方法是什么,然后在某个时候通知它停止。然后我想允许这个圆圈完成整圆(额外的时间)并通知控制器“圆圈”#39;动画结束了。

我现在做的是,我会为圆圈进度创建指令,并观察一些属性以了解何时开始/停止动画。然后,当观察到的completed属性更改为true时,指令会完成当前正在执行的循环,执行一些额外的动画(淡出)并调用“更改后”#39}。属性通知控制器。

对我来说,看起来我做得太复杂了。我需要观察许多属性'何时开始'何时停止'然后是回调方法的额外属性。

这种情况是否常见?也许我应该尝试用动画做这些事情?当我想将一些现有的jquery UI features集成到角度应用程序中时,我一直面临这个问题。

P.S。我希望这个指令可以在许多不同的控制器中重用。

Plunker example with 'stopping' animation and notifying controller

1 个答案:

答案 0 :(得分:1)

我不会把它放在控制器中,该指令是DOM交互的正确位置。根据我对您的问题的理解,您需要注意页面上多个区域的更改。您不一定需要为此观察多个变量。您可以将多个变量名称作为属性传递给指令,然后设置

scope.$watch(attrs.MyVar, function () {
      //Do something 
      scope[attrs.MyFunc]();

});

像这样。