Angularjs 后期创建的动画

Angularjs 后期创建的动画,angularjs,angularjs-animation,Angularjs,Angularjs Animation,我有一些代码在控制器中创建和注册一些动画。不幸的是,每当我在控制器中注册动画时,它似乎没有初始化(该函数从未被调用) 我创建了一个示例来说明这个问题。在这里,我在控制器外部调用“createAnim1”,动画功能正常。我在控制器内调用“createAnim2”,动画不起作用 createAnim1(); app.controller('main', function($scope) { createAnim2(); //This animation does not work }); cr

我有一些代码在控制器中创建和注册一些动画。不幸的是,每当我在控制器中注册动画时,它似乎没有初始化(该函数从未被调用)

我创建了一个示例来说明这个问题。在这里,我在控制器外部调用“createAnim1”,动画功能正常。我在控制器内调用“createAnim2”,动画不起作用

createAnim1();
app.controller('main', function($scope) {
  createAnim2(); //This animation does not work
});
createAnim函数的形式如下:

app.animation('.anim1', function() {
    return {
        ...
    }
});
我错过了什么明显的东西吗?$animate和$animateProvider文档似乎不包含任何与此相关的内容

我认为这与编译已经发生,并且初始化动画所需的某些步骤正在丢失有关?有什么办法可以解决这个问题吗

PS:我从上周开始才开始使用angular,所以我对其内部结构不太熟悉

编辑: 在Alex的评论之后,我认为有必要澄清我试图做的事情:


我有一些生成css类动画选择器并将其附加到文档头的代码。如果浏览器不支持转换,代码将生成与jquery动画等效的动画。我曾尝试创建一个工厂,通过DI公开此代码,当此代码运行时(从控制器内部),动画永远无法触发(初始化代码永远不会运行)。

我不是这些方面的专家,但我认为您不应该在其他功能中使用
app.animation
。您应该正常注册所有动画,然后使用服务延迟它们,我认为您可以在
.animation
方法中插入服务。您不能在angularJS中嵌套app.foo()。@AlexC感谢您的回复。我能问一下你在哪里找到关于筑巢的信息吗?(app.foo是您评论的一部分)。这里的目标是创建一个模块,该模块可以处理来自同一代码的css动画和jquery动画(当我模拟依赖项并在任何angularJS模块之外实例化它时,该模块工作)。我认为,通过查看angularJS的一般DI设计,这一点是显而易见的。还有其他一些事情您不能做,例如,您不能将控制器注入另一个控制器,或者在控制器中注入指令。您应该了解angularJS是一个框架,而不仅仅是像jQuery这样的库,每个angularJS组件中都有一些规则。也许有人会通过展示一种破解方法来证明我错了,但我认为你应该坚持支持的设计模式。:)顺便说一句,我希望这些事情有更好的记录。“我还没有找到一个地方把所有这些事情都说清楚。”“亚历克斯,我想问题的一部分是我对这个地方有多陌生。我仍然在摸索最好的做事方式。感谢您抽出时间为我指路:)