$templateCache не работает в angular-config в Angular.js

Я получаю "angular.min.js:6Uncaught Error: [$injector:modulerr]" при попытке использовать $templateCache в моем блоке app.config, если я удалю параметр $templateCache из app.config, то я не вижу никаких ошибки. Пожалуйста, дайте мне знать, если я что-то пропустил. Заранее спасибо.

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...";    
} ]);

1 ответ

Решение

Вы не можете получить доступ к сервису во время угловой конфигурации. Вы можете получить доступ к своему сервису внутри своего блока app.run. $templateCache - это служба, которую вы пытаетесь использовать в своем блоке конфигурации.

Тем не менее, вы можете получить к нему доступ в своем блоке разрешения состояния.

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

Вы можете получить доступ только к провайдерам во время блока конфигурации angular.

Найдите ниже ссылку, чтобы понять больше о конфигурации блока угловых. https://docs.angularjs.org/guide/module

Ниже приведено описание с официального сайта.

  • Блоки конфигурации - выполняются на этапе регистрации и настройки провайдера. Только провайдеры и константы могут быть введены в блоки конфигурации. Это необходимо для предотвращения случайного создания служб до их полной настройки.
  • Блоки запуска - выполняются после создания инжектора и используются для запуска приложения. Только экземпляры и константы могут быть введены в блоки выполнения. Это должно предотвратить дальнейшую настройку системы во время выполнения приложения.
Другие вопросы по тегам