我不想延迟加载我的路线模板。相反,我想在执行任何路由之前将所有路由模板加载到 $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 的代码将在路由服务查找模板之前执行?