0

私のapp.configブロックで$ templateCacheを使用しようとすると、"angular.min.js:6Uncaught Error:[$ injector:modulerr]"が返されます。 app.configから$ templateCacheパラメータを削除すると、エラーは表示されません。私が何かを逃したかどうか教えてください。前もって感謝します。

var app = angular.module("app", ['ui.router'], function() { 
 
    console.log('Application Initiated Successfully...'); 
 
}) 
 

 
.run(function ($templateCache, $http) { 
 
    console.log("app is running"); 
 
    $http.get("Views/home2.html", { cache: true }).success(function (html) {   
 
     $templateCache.put("Test.html", html); 
 
     console.log($templateCache.get("Test.html")); 
 
    }); 
 
    console.log($templateCache.info());  
 
}); 
 
    
 

 
app.config(['$stateProvider', '$urlRouterProvider', '$locationProvider', '$templateCache', function ($stateProvider, $urlRouterProvider, $locationProvider, $templateCache) { 
 
    $urlRouterProvider.otherwise("/"); 
 

 
    $stateProvider 
 
     .state("/", { 
 
      url: "/", 
 
      templateUrl: "Views/home.html"    
 
     }); 
 
}]); 
 

 
app.controller("indexController", ["$rootScope", "$scope", function ($rootScope, $scope) { 
 
    console.log('indexController'); 
 
    $scope.message = "Hi lets get started...";  
 
} ]);

+0

参照する前に角度jsライブラリをインポートしたかどうかを確認してください。シーケンスは問題ありません。これを確認してくださいhttp://stackoverflow.com/questions/18044519/what-is-the-cause-for-angular-is-not-defined – MasterMohsin

+0

私は正しい順序に従っています –

答えて

0

あなたは、角度設定時にサービスにアクセスすることはできません。 app.runブロック内でサービスにアクセスできます。 $ templateCacheは、あなたのconfigブロックで使用しようとしているサービスです。

ただし、状態の解決ブロック内でアクセスできます。

$stateProvider 
     .state("/", { 
      url: "/", 
      templateUrl: "Views/home.html", 
      resolve: { 
       data: function ($templateCache,dbService) { 
       return dbService.getData(); 
      } 
     }); 

プロバイダは、角度の設定ブロックの時点でのみアクセスできます。

角度の設定ブロックの詳細については、以下のリンクをご覧ください。 https://docs.angularjs.org/guide/module

以下は、公式サイトの説明です。

  • 設定ブロック - プロバイダの登録と設定フェーズで実行されます。構成ブロックにはプロバイダと定数だけを注入できます。これは、サービスが完全に構成される前に、サービスが誤ってインスタンス化されるのを防ぐためです。
  • 実行ブロック - インジェクタの作成後に実行され、 を使用してアプリケーションを起動します。インスタンスと定数だけが実行ブロックに注入される になることができます。これは、アプリケーションの実行中にシステム の設定を防止するためです。
関連する問題