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依赖项引用.在路由逻辑启动之前,依赖模块的运行块将首先运行,这就是你想要的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- ScalaFX Button =>如何定义动作?
- twitter-bootstrap – 如何在Bootstrap 4 col上对
- 如何从bash脚本执行多行python代码?
- shell – CLI:在地址处写入字节(hexedit /从命令
- 利用 Bootstrap 进行快速 Web 开发
- Docker实践之搭建wordpress的方法
- twitter-bootstrap – 在jsFiddle中使用twitter的
- angularjs – Angular Translate的useSanitizeVa
- 在终端(Bash)中,如何在文件名中间自动完成部分匹
- Bootstrap Table使用整理(二)
热点阅读