$ templateCache在Angular.js中的angular-config中不起作用

时间:2016-06-16 08:56:00

标签: javascript angularjs angular-templatecache angular-config

我在app.config块中尝试使用$ templateCache时," angular.min.js:6 Uncaught 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...";    
} ]);




1 个答案:

答案 0 :(得分:0)

您无法在角配置时访问服务。您可以在app.run块中访问您的服务。 $ templateCache是​​您尝试在配置块中使用的服务。

但是,您可以在州的解析区内访问它。

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

您只能在有角度的配置块时访问提供程序。

查找以下链接以了解有关角度配置块的更多信息。 https://docs.angularjs.org/guide/module

以下是其官方网站的说明。

  • 配置块 - 在提供程序注册和配置阶段执行。只有提供程序和常量才能注入配置块。这是为了防止在完全配置服务之前意外实例化服务。
  • 运行块 - 在创建并使用注入器后执行 启动应用程序。只有实例和常量才可以 注入运行块。这是为了防止进一步的系统 应用程序运行时的配置。