Router che impedisce le transizioni tramite willTransition

Spara il willTransition azione sulle rotte attualmente attivi quando si ri-tenta la transizione utilizzando il {{link-to}} aiutante o il transitionTo metodo.

Sintassi

Ember.Route.extend ({
   actions: {
      willTransition(transition) {
         //handle the transition
      }
   }
});

Esempio

L'esempio riportato di seguito illustra come impedire le transizioni tramite willTransitionazione sul percorso attivo. Crea una rotta chiamata willtransition e apri il file router.js con il seguente codice per definire le mappature URL:

import Ember from 'ember';                   
//Access to Ember.js library as variable Ember
import config from './config/environment';
//It provides access to app's configuration data as variable config 

//The const declares read only variable
const Router = Ember.Router.extend ({
   location: config.locationType,
   rootURL: config.rootURL
});

Router.map(function() {
   this.route('willtransition');
});

//It specifies Router variable available to other parts of the app
export default Router;

Crea il file application.hbs e aggiungi il codice seguente:

//link-to is a handlebar helper used for creating links
{{link-to 'Click For Transition' 'willtransition'}}
{{outlet}} //It is a general helper, where content from other pages 
   will appear inside this section

Apri il file willtransition.js creato in app / routes / con il seguente codice:

import Ember from 'ember';

export default Ember.Route.extend ({
   actions: {
      willTransition(transition) {
         
         //decalring the self variable
         var self = this;
         
         //checking whether self variable is false or not
         if (!this.get('allowTransition')) {
            document.write('<b><font color = "red">');
            
            //display the message
            document.write("transition abort");
            document.write('</font><br>');
            transition.abort();  //calling abort function

            Ember.run.later(function () {
               //setting the self variable to true
               self.set('allowTransition', true);
               document.write('<b><font color = "blue">');
               
               //display the message
               document.write("transition retry");
               document.write('</font>');
               transition.retry();  //calling retry function
            }, 500);
         }
      }
   }
});

Apri il file willtransition.hbs creato in app / templates / con il seguente codice:

<h2>Hello...Welcome to Tutorialspoint!!!</h2>
{{outlet}}

Produzione

Esegui il server ember e riceverai il seguente output:

Quando fai clic sul collegamento, verranno visualizzati i dati. Ma se fai clic sul link a ritroso, l' azione willTransition chiama il metodo transizione.abort () e quindi transizione.retry () .