angularjs - 将 angular.injector 与 ngAnimate 一起使用

标签 angularjs ng-animate angularjs-injector

我已将“ngAnimate”作为我的 ngApp 的依赖项包含在内。

现在在 jQuery 文件中,我尝试使用以下方式访问它:

angular.injector(['ng', 'angular-sm']).invoke(['$compile', '$timeout' ,function ($compile, $timeout) {

但这给了我一个错误

Error: $injector:unpr
Unknown Provider
Unknown provider: $rootElementProvider <- $rootElement <- $animate <- $compile

然后我将其更改为:

angular.injector(['ng','ngAnimate', 'angular-sm']).invoke(['$compile', '$timeout' ,function ($compile, $timeout) {

angular.injector(['ng','ngAnimate', 'angular-sm']).invoke(['$animate','$compile', '$timeout' ,function ($animate,$compile, $timeout) {

这些也不起作用。

然后我尝试了:

var app_element = document.querySelector('[ng-app=angular-sm]');
            angular.element(app_element).injector().invoke(['$compile', '$timeout' ,function($compile,$timeout) {

即我定义了 ngApp 的注入(inject)器并且它起作用了。为什么会这样?

最佳答案

Angular 应用程序中只有一个 $injector,您可以使用它来获取它

angular.injector('rootModule')

angular.element(document).injector()

在您的情况下,它不是根模块,因此您遇到了错误。

关于angularjs - 将 angular.injector 与 ngAnimate 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25484686/

相关文章:

javascript - 使用 Angular Controller 显示来自 API 的 JSON 数据

css - 使用 Angular ngAnimateSwap 指令的简单向前和向后 CSS 动画

Angularjs 依赖注入(inject)顺序

javascript - Angularjs 工厂注入(inject)错误

javascript - 如何使用 HTML5/Javascript 下载并显示文本文件?

javascript - 使用工厂 AngularJS 提供处理后的数据

javascript - 无法引用 JSON 中的元素

javascript - AngularJS $animate.enter 不添加 ng-enter 和 ng-enter-active 类

javascript - Angular 动画 View 转换取决于起点和终点

javascript - 未知提供程序 : $rootElementProvider when using $injector to get $location service before angular. Bootstrap