【问题标题】:using angular.injector with ngAnimate使用 angular.injector 和 ngAnimate
【发布时间】:2014-10-18 12:45:06
【问题描述】:

我已将“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 的注入器并且它工作了。为什么会这样?

【问题讨论】:

    标签: angularjs ng-animate angularjs-injector


    【解决方案1】:

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

    angular.injector('rootModule')
    

    angular.element(document).injector()
    

    在你的情况下,它不是根模块,所以你有一个错误。

    【讨论】:

      猜你喜欢
      • 2018-02-25
      • 2017-08-01
      • 1970-01-01
      • 2018-05-01
      • 2017-05-23
      • 2014-12-08
      • 2014-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多