加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 可以在定义路由之前填充$templateCache吗?

发布时间:2020-12-17 10:21:55 所属栏目:安全 来源:网络整理
导读:我不想懒加载我的路线模板.相反,我想在执行任何路由之前将所有路由模板加载到$templateCache中. 这就是我在做的事情: angular.module('myApp',['ngRoute']).config(['$routeProvider','$locationProvider',function ($routeProvider,$locationProvider){ $l
我不想懒加载我的路线模板.相反,我想在执行任何路由之前将所有路由模板加载到$templateCache中.

这就是我在做的事情:

angular.module('myApp',['ngRoute']).config(['$routeProvider','$locationProvider',function ($routeProvider,$locationProvider)
{
    $locationProvider.html5Mode(false);

    $routeProvider.when("/main",{templateUrl: "main",controller: "MainCtrl"})
                  .when("/login",{templateUrl: "login",controller: "LoginCtrl"});
}])
.run(['$location','$templateCache',function ($location,$templateCache)
{
   //...Save templates in $templateCache
   $location.path("/login");
}]);

如果您浏览到/,因为它与任何路由都不匹配,这可以正常工作.但是如果你浏览或刷新/#/ login,似乎路由服务试图在我的运行块运行之前加载模板并向服务器发出请求.

无论如何要确保填充$templateCache的代码将在路由服务寻找模板之前执行?

如果您使用grunt,我强烈推荐 grunt-angular-templates用于此目的,但如果您不这样做并且想要手动创建单独的模块,您可以在其中使用与现在类似的逻辑,其中包括以下内容:
angular.module('myapp.templates').run(['$templateCache',function($templateCache) {
$templateCache.put(...

然后简单地将该模块作为您的app依赖项引用.在路由逻辑启动之前,依赖模块的运行块将首先运行,这就是你想要的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读