我希望在等待(轮询)服务器时显示一些进度循环。我为此使用了一些jquery circle-progress插件。我想弄清楚有条件地开始循环进度的最常用方法是什么,然后在某个时候通知它停止。然后我想允许这个圆圈完成整圆(额外的时间)并通知控制器“圆圈”#39;动画结束了。
我现在做的是,我会为圆圈进度创建指令,并观察一些属性以了解何时开始/停止动画。然后,当观察到的completed
属性更改为true
时,指令会完成当前正在执行的循环,执行一些额外的动画(淡出)并调用“更改后”#39}。属性通知控制器。
对我来说,看起来我做得太复杂了。我需要观察许多属性'何时开始'何时停止'然后是回调方法的额外属性。
这种情况是否常见?也许我应该尝试用动画做这些事情?当我想将一些现有的jquery UI features
集成到角度应用程序中时,我一直面临这个问题。
P.S。我希望这个指令可以在许多不同的控制器中重用。
Plunker example with 'stopping' animation and notifying controller
答案 0 :(得分:1)
我不会把它放在控制器中,该指令是DOM交互的正确位置。根据我对您的问题的理解,您需要注意页面上多个区域的更改。您不一定需要为此观察多个变量。您可以将多个变量名称作为属性传递给指令,然后设置
scope.$watch(attrs.MyVar, function () {
//Do something
scope[attrs.MyFunc]();
});
像这样。