Rota şablonlarımı tembel yüklemek istemiyorum. Bunun yerine, tüm rota şablonlarını yürütmekte olan herhangi bir rotadan önce $ templateCache dosyasına yüklemek istiyorum.
Bu yapıyorum budur:
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");
}]);
herhangi rotayı uymuyor çünkü /
göz atarsa bu Tamam çalışır. Ancak, /#/login
'a göz atıyor veya yeniliyorsanız, rota hizmetinin, çalıştırılan bloğum çalışmaya başlamadan önce şablonu yüklemeye çalıştığı ve sunucu için bir istekte bulunduğu anlaşılıyor.
Rota hizmetinin şablon aramaya başlamadan önce $ templateCache öğesinin uygulanacağı kodun yürütülmesini sağlamak için yine de var mı?
Bu iyi bir fikir. İşe yarayacağını düşündüm ama olmadı. 'MyApp' ana modülünün * config * bloğu, myApp'ın şablonlara bağımlı olmasına rağmen, 'templates' modülünün * run * bloğundan önce çalışır. Yapılandırma bloklarının büyük olasılıkla yürütme blokları gibi yürütmek için bağımlılıkları beklemek zorunda olmadığını düşünüyorum. Maalesef rotaların bir yapılandırma bloğunda ayarlanması gerekiyor. – CHS
Evet, güzergâhların yapılandırma blokunda ayarlanması gerekir, ancak yönlendirme kendisi yapılandırma bloğunda çalışmaz, bu yüzden eklediğim kod hile yapar, $ templateCache yönlendirmeden önce doldurulur. Bunu benim uygulamalarımda (grunt-açısal-şablonları kullanarak) yapıyorum ve mükemmel çalışıyor. –
@Tadeusz Hayır, ağ trafiğinizi kontrol edin. Yönlendirme, çalıştırma blokları yürütmeden önce mevcut URL ile eşleşen rota için şablonu indirmeyi deneyecektir. (1.2-rc3) Sunucunuz bu isteği doğru bir şekilde yanıtlayabiliyorsa, bunu fark etmeyebilirsiniz. Gelecek rota değişiklikleri önbelleği kullanacaktır, ancak ilk olanı olmayacaktır. – user169867