2016-07-12 11 views
0

ich einen Zustand, wie folgend haben:Mit Zustände mit Query-String

.state('app.jobsList', { 
    url : '/jobs-list?typeContrat&ville&competence', 
    controller : 'OffresController', 
    templateUrl : 'views/tmpl/jobs.html' 
}) 

diesen Zustand nennen kann ich die folgenden Links:

app/jobs-list?typeContrat= 
app/jobs-list?ville= 
app/jobs-list 

In meinem navbar Ich habe ein Attribut app/jobs-list zu nennen wie folgend:

<a ui-sref="app.jobsList">Offres</a> 

Wenn ich auf den Link klicken, funktioniert es und leitet es mich zu diesem sta te.

Und in meiner Fußzeile habe ich andere Attribute, die diese Links aufruft:

app/jobs-list?typeContrat= 
app/jobs-list?ville= 

Wenn ich auf sie klicken sie arbeiten und sie leitet mich auf den app.jobsList Zustand mit der Abfrage-String.

Das Problem ist, wenn ich eine dieser URLs anrufen, und ich auf das Attribut klicken Sie dann auf, die mich auf die app/jobs-list umleiten hat es nicht und es bleibt auf dem app/jobs-list?typeContrat= oder app/jobs-list?ville= funktioniert.

Wie kann ich das lösen?

Edit:

Dies ist, wie ich in meiner Fußzeile umleiten:

<a href="" ng-click="search(null,ville.nomVille,null)">{{ville.nomVille}}</a></li> 

Und dies ist die Suchfunktion:

$scope.search = function(typeContrat, ville, competence){ 
     $state.go('app.jobsList',{typeContrat:typeContrat,ville:ville,competence:competence}); 
    }; 
+0

Können Sie zeigen, wie werden Sie auf 'app/Jobs-Liste typeContrat =' und 'app/Jobs-Liste ville = 'in deiner Fußzeile? – Chinni

+0

@Chinni bitte überprüfen Sie meine Bearbeitung –

Antwort

2

Sie versuchen, den gleichen Zustand laden mit neue params. zu zwingen Zustand reload Verwendung

<a ui-sref="app.jobsList({param1: 1, param2: 2})" data-ui-sref-opts="{reload: true}">Some text</a> 

Oder mit $state:?

$state.go('app.jobsList',{typeContrat:typeContrat,ville:ville,competence:competence}, {reload: true}); 
+0

Danke es funktioniert –

+0

Bedeckt diese Frage nur 'angularjs' Konzepte oder es erklärt eine Funktionalität aus einer' angularjs' Bibliothek? – Saksham

+0

Ein bisschen von beidem. Immer wenn Sie auf einer Route landen, wird der Controller instanziiert. Wenn Sie denselben Controller aus derselben Ansicht laden möchten, müssen Sie einen Neuladevorgang erzwingen. Diese Antwort ist spezifisch für die 'ui-router' Bibliothek, obwohl dieses Konzept auch in' ng-route' verfügbar ist. –

Verwandte Themen