2014-09-13 14 views
5

Sto scrivendo un'app Ember.js e ho riscontrato un piccolo problema nell'utilizzo dei parametri di query.Ripristino/rimozione dei parametri di query Ember.js e dei problemi di collegamento a helper

Ho i seguenti modelli: Progetto, categoria e Designer. Il progetto può appartenere a una singola categoria e avere più progettisti.

Sto utilizzando una proprietà calcolata sul controller di progetto per filtrare i progetti in base a quale categoria o Designer è selezionato. Tutto funziona bene, ad eccezione di quanto segue:

C'è un elenco di Categorie (collegamenti al percorso "progetti" con category.slug come parametri di query) che utilizzo per filtrare i progetti {{#link-to 'projects' (query-params category=category.slug)}}, ad esempio #/projects?category=product. Oltre a questo elenco ho inserito un collegamento che porta a un percorso pulito di "progetti" nella speranza che ripristini/rimuova il parametro di ricerca "categoria", ma tale collegamento sembra sempre portare a "progetti" con parametri di query attualmente attivi. Quindi, ad esempio, se guardo allo #/projects?category=product il link di rotta "progetti" pulito e il collegamento "progetti (query-parametri ...)" si comportano come collegamento attivo, che è un problema.

So che questo può essere un po 'aggirato posizionando un valore predefinito per la categoria param nel link-to helper per il percorso "pulito", ma vorrei evitare che come impostazione category='all' o qualcosa di simile è gentile di strano per me. C'è un modo per forzare i param di query a scomparire usando un helper link-to? So che può essere fatto creando un'azione sul controller e impostando la proprietà relativa alla query param su null, ma non è ancora una soluzione elegante in quanto dovrei simulare un link.

Inoltre, se c'è un secondo elenco di Designer, che funziona allo stesso modo, quale sarebbe il modo più semplice per avere i parametri di query solo "categoria" o solo "designer", ma non entrambi? Mi piacerebbe evitare di avere parametri appiccicosi in questo caso d'uso, quindi niente come #/projects?category=product&designer=john.

Grazie!

risposta

5

Come andyhot suggerito in his post su EmberJS Discorso, ho fatto quanto segue per ottenere ciò di cui avevo bisogno:

Aggiungere una proprietà di controllo per il valore predefinito:

defaultCategory: null 

e poi nel link -per aiutante

(query-params category=defaultCategory) 

È una specie di soluzione alternativa, ma fa il trucco.

4

La risposta dovrebbe essere aggiornato

(query-params category="null") 

noti che null deve essere passato come una stringa.

+1

Questo funziona! Assicurati di aggiungere il valore predefinito per 'category' nel controller. ad esempio 'category: null' –

Problemi correlati