2017-10-19 7 views
0

J'essaie d'ajouter une page de préchargement pour ma page de modèle lent. Mais mon routeur ne montre pas le modèle pour le préchargement.Ember - page de précharge Ne pas déclencher pour le modèle lent

ici est ma structure de la route:

http://localhost:4302/cs2i/purchase/purchaseDetails

this.route('cs2i', function() { 

    this.route('purchase', function() { 
     this.route('purchaseDetails', function(){ 
     this.route('loading'); //not loading I do have template 
     }); 
     this.route('purchaseDetails-loading'); //not loading I do have template 
    }); 
    }); 

quelle est la question? comment puis-je mettre un préchargeur sur mon itinéraire jusqu'à ce que mes données et mon modèle soient rendus?

merci d'avance.

De plus, j'ai une action avec ma page 'achat', qui se déclenche même avant le chargement des données.

actions: { 

     loading : function(transition, originRoute){ 

      console.log("loding done");//getting before data load 

     }, 
+0

Je pense que vous n'avez pas besoin de le spécifier dans router.js pour le chargement .. ce sera automatiquement choisi et rendu s'il existe – kumkanillam

+0

Alors, juste le modèle suffit? – 3gwebtrain

+0

J'ai supprimé l'itinéraire de router.js. Mais toujours le gabarit ne décroche pas? – 3gwebtrain

Répondre

1

Définir une action de chargement sur votre itinéraire remplace le comportement par défaut (montrant le modèle). Vous devez renvoyer true à partir de votre action de chargement si vous souhaitez afficher le modèle de chargement.

Voir: https://guides.emberjs.com/v2.16.0/routing/loading-and-error-substates/#toc_the-code-loading-code-event

Notez également que si vous chargez des données dans les crochets du modèle de la route purchase, le modèle/itinéraire purchase.loading sera chargé et non purchase.purchaseDetails.loading comme décrit dans la configuration de votre routeur.

+0

mes données chargent sur "purchaseDetails" seulement. – 3gwebtrain