C'è un modo per attivare lo stesso percorso di posizione in backbone.js, ad esempio quando la posizione è /My/App/#/About
e l'utente fa nuovamente clic su ancora con lo stesso percorso per aggiornare il contenuto della pagina.Trigger stesso percorso di posizione
risposta
Router.navigate('about', true);
In questo modo è possibile attivare manualmente un percorso.
Supponendo che si vuole fare questo per più di una semplice pagina Chi, uso:
route = Backbone.history.fragment;
yourRouter.navigate(route, true);
Usando Backbone 0.9.2 si passa in un oggetto opzioni e impostare 'trigger' a 'vero'.
router.navigate('some/route', { trigger : true });
Riferimento: http://documentcloud.github.com/backbone/#Router-navigate
Questo non funziona per ricaricare il percorso corrente. navigare restituisce se il frammento di destinazione corrisponde al frammento corrente. – DriverDan
Backbone.history.loadUrl(Backbone.history.fragment);
La soluzione per il vostro problema specifico non è realmente documentata e sembra la migliore pratica suggerita è di chiamare solo la funzione dichiarata nel percorso che si desidera fuoco:/
Rif: https://github.com/documentcloud/backbone/issues/1214
Finora le altre risposte sono corrette, ma hanno dimenticato di dire che, se l'hash navigato è uguale all'hash corrente, non sparerà nulla.
Sembra che sia l'unica risposta che permette davvero di aggiornare la stessa pagina, grazie! –
Non dovremmo usare Backbone.history.getFragment() in modo da non raggiungere le proprietà della cronologia? Sembra più pulito nella mia mente. – Rob
'getFragment()' sarebbe sicuramente un approccio più appropriato con il backbone più moderno. Tuttavia, vorrei fare +1 sul commento sull'esecuzione della funzione dichiarata invece di cercare di ingannare il router per l'aggiornamento. – mix3d
Poiché il router Backbone cerca le modifiche nel frammento di URL che si desidera caricare, ciò che ha funzionato per me è passare a "/" prima senza trigger e quindi successivamente all'URL (frammento) che si desidera colpire con grilletto. Probabilmente potresti farlo nel comportamento predefinito del router abbastanza facilmente se lo volessi.
ad es.
App.Routers.appRouter.navigate '/', {trigger: false}
App.Routers.appRouter.navigate myPath, {trigger: true}
Grazie per il suggerimento @eddywashere, davvero fantastico. Ho aggiunto una piccola modifica alla mia che controlla se sei sull'ultimo URL (più aggiornato), e in tal caso, carica quella cronologia. Abbastanza semplice, pensato che potrebbe aiutare qualcuno con lo stesso problema.
$("[data-href]").on("click", function(e) {
var href;
e.preventDefault();
href = $(e.currentTarget).data("href");
if ((_.last(this.history)) === href) {
return Backbone.history.loadUrl(_.last(this.history));
} else {
return this.router.navigate(href, true);
}
});
cura di condividere questo in javascript normale invece di coffeescript? – mix3d
@ mix3d sicuro. Ho modificato il post originale. –
Un'altra opzione: è possibile aggiungere un parametro con un valore casuale, in modo da hash sarà diverso per ogni chiamata, anche se si chiama la stessa pagina.
router.navigate (route, {trigger: false}); // URL cambia ma non si innescherà ... Es: Al posto di percorso - 'circa/1' o 'di' ecc
Backbone.history.loadUrl (Backbone.history.fragment); // Il percorso modificato verrà attivato qui.
- 1. posizione percorso Svg
- 2. Trigger mediascanner su percorso specifico (cartella), come?
- 3. MySQL - trigger per l'aggiornamento stesso tavolo dopo inserto
- 4. Angular2 - due componenti con lo stesso percorso
- 5. Angolare - percorso diverso, stesso modello/controller, diverso metodo di caricamento
- 6. Posso utilizzare caratteri jolly nell'attributo del percorso di posizione web.config?
- 7. Risoluzione Descrizione Percorso risorsa Posizione Errori di tipo
- 8. jQuery trigger trigger clic due volte
- 9. Debug di trigger MySQL
- 10. Evento "onchange" di trigger
- 11. THREE.js: 2xMesh con lo stesso vettore della posizione
- 12. Trigger popover di bootstrap su Twitter: come impostare più trigger?
- 13. swift - Unit test CoreData (+ MagicalRecord) trigger di trigger EXC_BAD_ACCESS
- 14. Apache: reindirizzare gli utenti, ma mantenere lo stesso percorso?
- 15. Navigare allo stesso percorso senza aggiornare il componente?
- 16. segnali django e trigger?
- 17. JAX-RS classi multiple con lo stesso percorso
- 18. Come configurare più controller nello stesso percorso in ember.js?
- 19. Emberjs: transitionToRoute nello stesso percorso con diverso valore del modello
- 20. Duplicare i file nello stesso percorso all'interno dell'APK
- 21. X/Y posizione del punto finale del percorso in Raphael
- 22. Come codificare la posizione dell'eseguibile in un percorso Linux?
- 23. Posso avere lo stesso gestore percorso per due percorsi
- 24. Come ottenere il nome del percorso quando la posizione cambia?
- 25. Aggiornamento trigger T-SQL
- 26. Cambiamento del percorso di posizione di AngularJs senza reimpostare tutti i controller
- 27. I trigger ItemView scoppiano?
- 28. Trigger di base: math.atan() problema
- 29. Vincolo di trigger e controllo
- 30. Problemi di trigger in Z3
Non aggiornato: https://github.com/jashkenas/backbone/issues/1214 – hongymagic