3

ngApp への依存関係として「ngAnimate」を含めました。

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 のインジェクターを使用したところ、機能しました。なんでそうなの ?

4

1 に答える 1

2

Angular アプリケーションには 1 つしかなく$injector、次を使用して取得できます。

angular.injector('rootModule')

また

angular.element(document).injector()

あなたの場合、それはルートモジュールではなかったため、エラーが発生しました。

于 2015-05-03T23:28:15.667 に答える