2015-07-21 32 views
7

$ templateCache öğesini el ile temizlemenin en iyi yolu Sistem genelinde çok fazla sayıda html şablon dosyasının kullanıldığı bir sistem üzerinde çalışıyorum.AngularJS

Sorun, güncelleştirmeleri dağıtırken, kullanıcıların tarayıcıları önbelleğe alınmış sürümünü kullandıkları için html değişikliklerini göremiyor. Şimdiye kadar, kullanıcıların html güncellemelerini görebilmelerini sağlamanın tek yolu, tarayıcılarını zor bir şekilde yeniden yüklemelerini sağlamaktır.

Açık nedenlerden dolayı bu ideal değildir. Mre kullanıcıları bu sisteme geçtikçe, herkesin bu eylemi gerçekleştirdiğinden emin olmak için can sıkıcı bir görev haline geldi.

Komutumda şablon önbelleğini temizlemek için sisteme erişen tarayıcıları zorlayabilmemin bir yolu var mı? Belki de sisteme giriş yaptıktan sonra bunu manuel olarak temizler misiniz? Sen açısal-cache-buster eklenti kullanabilirsiniz

+1

$ templateCache sayfa yüklemeleri arasında önbelleğe alma için sorumlu değildir. Bunu sunucu tarafında çözün veya zaman damgalı/sürümlü istekler yapın, ör. 'Template.html? V = 123.' – estus

cevap

6

$templateCache.removeAll()

örnek kod şablonu önbelleğe

myApp.run(function($rootScope, $templateCache) { 
    $rootScope.$on('$viewContentLoaded', function() { 
     $templateCache.removeAll(); 
    }); 
}); 
+0

"viewContentLoaded" yerine başka bir olayı kullanabilirsiniz, bu sadece örnekte olabilir :) –

+1

Soru, tarayıcı önbelleğini ele alır, $ templateCache, başlığın söylediklerine rağmen sorunla hiçbir ilgisi yoktur. – estus

+0

@estus, O, html şablon dosyalarını çok kullandığını söyledi? soruları tamamen okudun mu? –