2015-05-28 15 views
8

Al momento ho uno stato che assomiglia a questo:angolari UI-Router reimpostazione params querystring su reload

.state('test-event-list', { 
    parent: 'private', 
    url: '/test-events?search&sortc&sortd&pagesize&page&select&status', 
    reloadOnSearch: false, 
    views: { 
     '[email protected]': { 
      templateUrl: 'app/config-test/test-event/list.html', 
      controller: require('./config-test/test-event/list') 
     } 
    }, 
    data: { 
     auth: true 
    } 
}) 

Sto usando $ location.search() per impostare i diversi parametri come l'ordinamento, la dimensione e la lista elenca la pagina nella querystring.

Così, per esempio, l'URL potrebbe essere la seguente:

/test-events?pagesize=25&page=1 

ho un menu che ha il seguente link per selezionare l'elenco prove dell'evento:

<a ui-sref="test-event-list" ui-sref-opts="{reload: true, inherit: false}">Tests</a> 

Mentre nello stato " test-event-list ", facendo clic su questo link, fa in parte ciò che voglio: ripristinare i parametri della lista e ricaricare la pagina. Ma quello che non sta facendo è rimuovere i parametri dalla stringa di query.

Come posso rimuovere "? Pagesize = 25 & page = 1" dall'URL?

Il flag ereditario fornito dall'i-router non sembra fare molto. Sto usando l'ultima versione di ui-router (0.2.15).

+1

Potresti fornire un plunker con questo comportamento? Mi piacerebbe davvero vedere come possiamo risolvere questo. – Okazari

+0

Hai provato a impostarli su null? ui-sref = "elenco-eventi-test ({pagesize: null, page: null})" Potrebbe funzionare. – Okazari

+0

@Okazari Preferisco non impostarli singolarmente perché se i parametri vengono modificati, dovrei tornare indietro e ripetere tutte le voci del menu. Vedrò se riesco a ottenere un plunker per te – Xander

risposta

7

Si potrebbe provare ad andare:

<a ui-sref="test-event-list({})" ui-sref-opts="{reload: true, inherit: false}">Tests</a> 

perché i parametri di stringhe di query non sono obbligatori

+0

Grazie per il suggerimento rave ma l'ho già provato e nessun dado purtroppo . La querystring non viene rimossa dall'URL. – Xander

+1

Grazie rave, questo in realtà ha funzionato per me. angolare v1.3.14 + ui-router v0.2.15 – Sephy

3

Ho avuto questo stesso problema dove volevo solo per rimuovere la query dalla fine dell'URL. Sono stato in grado di rimuovere la query passando una stringa vuota per ogni parametro. Sarebbe qualcosa di simile per te.

<a ui-sref="test-event-list({ pagesize: '', page: '' })">Tests</a> 

Per me è stato un po 'diverso. Non avevo bisogno di passare il nome del percorso corrente.

<a ui-sref="{ date: '' }">all logs</a>