2015-05-28 8 views
8

Im Moment habe ich einen Zustand, der wie folgt aussieht:Angular UI-Router Zurücksetzen Abfragezeichenfolgeflag params auf 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 
    } 
}) 

Ich bin mit $ location.search(), um die verschiedenen Parameter wie Sortieren, Listengröße und Seite in der Querystring auflisten.

So könnte beispielsweise die URL wie folgt aussehen:

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

Ich habe ein Menü, das auf den folgenden Link hat die Tests Ereignisliste auszuwählen:

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

Während in den Zustand " test-event-list ", klicke auf diesen Link, mache teilweise was ich will: setze die Listenparameter zurück und lade die Seite neu. Aber was es nicht tut, ist, die Parameter aus der Abfragezeichenfolge zu entfernen.

Wie kann ich "? Pagesize = 25 & page = 1" aus der URL entfernen?

Die Erben Flag von UI-Router zur Verfügung gestellt scheint nicht viel zu tun. Ich benutze die neueste Version von UI-Router (0.2.15).

+1

Konnten Sie mit diesem Verhalten einen Plünderer zur Verfügung stellen? Ich würde wirklich gerne sehen, wie wir das lösen können. – Okazari

+0

Haben Sie versucht, sie auf null zu setzen? ui-sref = "test-event-list ({pagesize: null, seite: null})" Das könnte funktionieren. – Okazari

+0

@Okazari Ich würde sie lieber nicht einzeln einstellen, denn wenn die Parameter geändert werden, müsste ich zurückgehen und alle Menüpunkte wiederholen. Ich werde sehen, ob ich einen Plunker für Sie bekommen kann – Xander

Antwort

7

könnten Sie versuchen, gehen:

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

weil Abfrage-Strings Parameter

+0

Danke für den Vorschlag, Rave, aber ich habe das schon versucht und keinen Würfel traurig . Die Abfragezeichenfolge wird nicht aus der URL entfernt. – Xander

+1

Danke Rave, das hat tatsächlich für mich funktioniert. eckiger v1.3.14 + ui-router v0.2.15 – Sephy

3

nicht zwingend notwendig sind hatte ich das gleiche Problem, wo ich wollte nur die Abfrage von dem Ende der URL entfernen. Ich konnte die Abfrage entfernen, indem ich für jeden Parameter eine leere Zeichenfolge übergab. Es würde ungefähr so ​​für dich aussehen.

Für mich ist war ein wenig anders. Ich musste den Namen der aktuellen Route nicht eingeben.

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