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

4

1 回答 1

0

您无法在角度配置时访问服务。您可以在 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

以下是其官方网站的描述。

  • 配置块 - 在提供者注册和配置阶段执行。只有提供者和常量可以注入到配置块中。这是为了防止在完全配置之前意外实例化服务。
  • 运行块 - 在创建注入器后执行并用于启动应用程序。只有实例和常量可以注入运行块。这是为了防止在应用程序运行时进行进一步的系统配置。
于 2016-06-16T09:03:01.650 回答