2016-08-21 5 views
0

I-Filter will eine ng-repeat basierend auf einem Parameter aus der URLFilter 'ng-repeat' basierend auf URL-Parameter

sagen, die URL-

http://sitename/pagename.aspx?Id=27 

Hier ist also ich will gefiltert werden die ID. wie-

ng-repeat="oneItem in listOfItems | filter : 27" 

So ist die Zahl 27 ist dynamisch aus der

URL bekam zu

Helfen Sie mir mit diesem Typen, Lemme wissen, wenn Sie weitere Informationen benötigen .. :)

+0

Wenn Sie 'ui-router' verwenden, gibt' $ state.current.url' die aktuelle URL zurück. Daraus können Sie den Wert von "ID" nehmen und speichern, dass in einer Variablen und verwenden Sie –

+0

verwenden Sie "ng-Router" oder "UI-Router"? –

+0

Nein, ich bin nicht .. Ich bin neu in AngularJs und nicht bewusst, die vollständige Funktionalität. – theLearner

Antwort

3

Ich gehe davon aus Sie verwenden nicht ng-router und ui-router.

Es ist eine schlechte Übung, Dinge im Frontend zu filtern. Stattdessen sollten Sie das ID an Ihr Backend senden und das korrekte Ergebnis zurückgeben. Dann können Sie einfach tun:

ng-repeat="oneItem in listOfItems" 

Sie können dies tun, indem Sie die Methode zu ändern, die ein Ergebnis zurückgibt, die dann zu listOfItems zugeordnet.

Sie können die ID von URL wie folgt erhalten:

var url = window.location.href; 
$scope.productId = url.split("=")[1] // this assumes that url is exactly like you wrote 

Dann fügen Sie diese zu Ihrer $http Erhaltungs-Anforderung und die Daten von Ihrem Backend bekommen.

Wenn Sie immer noch darauf bestehen sie im Frontend zu tun, dies zu tun:

ng-repeat="oneItem in listOfItems | filter : {id: productId}" // this assumes that oneItem object has property of id 

Hoffe, es hilft!

+0

Dies funktioniert für mich diesmal: D: D .. Danke, aber ich werde sicherstellen, dass ich über ng-router und ui-router erfahren werde ... (y) – theLearner

Verwandte Themen