Sto cercando di implementare una funzione di ricerca per il mio sito web. Quando l'utente digita un termine di ricerca foobar
in una scatola input
e lo invia, è reindirizzato a http://mydomain.com/search?query=foobar
.In caso Backbone.js acquisisca i parametri GET dall'URL?
Problema :: Come dovrei prendere i parametri GET query
dal URL e inviarlo al backend e ottenere una serie di risultati indietro come una risposta JSON? Dovrei farlo anche in questo modo?
Il mio attuale tentativo di sotto non addirittura causare la funzione search
da attivare.
Router
var AppRouter = Backbone.Router.extend({
routes: {
'search?query=:query': 'search'
// ... and some other routes
},
search: function(query) {
this.photoList = new SearchCollection();
var self = this;
this.photoList.fetch({
data: {query: query},
success: function() {
self.photoListView = new PhotoListView({ collection: self.photoList });
self.photoListView.render();
}
});
}
});
var app = new AppRouter();
Backbone.history.start({
pushState: true,
root: '/'
});
L'utente può andare a 'domain.com',' domain.com/something', 'domain.com/search' e il router verrà eseguito il corretto funzionamento di rendere gli elementi sulla pagina. Interagendo con link/pulsanti/schede sulla pagina 'app.navigate()' a un segmento URI diverso. Questo risponde alla domanda sul reindirizzamento a 'index.html' per supportare' pushState'? – Nyxynyx
No, non lo è. Voglio sapere come stai configurando il tuo server per pushState, non è automatico. In particolare, devi configurare il tuo server web per gestire altrimenti 404 per reindirizzare a index.html. – tbranyen
Nel mio framework PHP ho un router che controlla se il percorso è valido prima di eseguire il rendering della pagina contenente backbone.js. Se l'URL non è valido, il router PHP reindirizzerà a 404. – Nyxynyx