Utilisation de $ templateCache dans le modèle d'ui-router
Puis-je utiliser $templateCache dans l'interface utilisateur du routeur modèle?
Le modèle sera mis en cache dans la résolution de la section et je veux utiliser le cache de modèle dans le même état.
$stateProvider
.state('dashboard', {
url: "/dashboard",
template: function($templateCache){
console.log('test 2');
return $templateCache.get('templates/template1.html'); //returns undefined
},
resolve:{
baseTemplates: function($ocLazyLoad) {
//here the template will be cached...
return $ocLazyLoad.loadTemplateFile(['base/dashboard.html']).then(function(){
console.log('test 1');
});
}
}
})
//console prints "test 2" before than "test 1"
Mise à jour: (+ Code mis à jour)
Je Pense que résoudre partie de mon code a un problème. parce qu'il s'exécute après le modèle de la section! et il cause de retourner $templateCache.obtenez de l'être indéfini.
- Je utiliser ocLazyLoad plugin de cache modèle et elle renvoie une bonne promesse.
Pourquoi le modèle n'attend-il de résoudre?
source d'informationauteur Morteza Ziaeemehr
Vous devez vous connecter pour publier un commentaire.
La façon de définir dynamiquement le modèle dynamique n'est pas via le
template
bien maistemplateProvider
. Il y a un travail plunkeret c'est l'extrait de code:Voir:
Et aussi, je dirais, que de ne pas ownly vous peut utiliser le
$templateCache
mais il est déjà utilisé parui-router
. Le service principal responsable du chargement des modèles (à partir de l'url, string...) de notre point de vue est le:qui, comme son illustre le code, n'utilisez
$templateCache
naturelles de l'optimisation ($templateFactory
extrait de code🙂Bien, je viens de découvert que vous pouvez tout simplement mis la clé de votre
$templateCache
modèle que latemplateUrl
route de la propriété et il fonctionne très bien.Je ne sais pas si ça a déjà été résolu, cependant, j'ai décidé de mettre à jour mon modèle comme suit. Je me souviens que j'utilise AngularAMD /AngularUIRouter, mais le templateURL fonctionne de la même manière. J'utilise la fonction dans templateURL, où je passe le "xxx" correspond à une nouvelle date à chaque fois, ce qui oblige la page de recherche de nouveau. J'espère que j'ai aidé à bien.
Une fois que c'est fait, le code ci-dessous fonctionne comme prévu: