Angular 最佳实践。触发动画的控制器操作

Angular best practice. Controller actions triggering animations

提问人:jonasnas 提问时间:7/5/2015 更新时间:7/5/2015 访问量:70

问:

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

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

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

这是这种情况的常用方法吗?也许我应该尝试用动画来做这些事情?当我想将一些现有的东西集成到 angular 应用程序中时,我一直会遇到这个问题。jquery UI features

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

带有“停止”动画和通知控制器的 Plunker 示例

JavaScript angularjs 动画 using 指令

评论


答:

1赞 tuckerjt07 7/5/2015 #1

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

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

});

这样。