Comment récupérer la valeur de la chaîne de requête avec AngularJS

J'ai eu beaucoup de progrès dans mon projet précédent et j'ai besoin d'une dernière aide que je ne peux pas imaginer.

Je construis tout mon contrôleur angulaire avec toutes les données qui doivent remplir sur la page, mais j'ai besoin de filtrer par une valeur spécifique qui passe d'une autre page.

J'ai décidé de faire la chaîne de requête, mais je suis perdu comment récupérer mes 2 paramètres, 1 étant utilisé dans cette section, 1 étant utilisé plus loin dans la page. J'ai essayé d'utiliser jquery url (projet), mais dans l'appel jquery, je ne peux pas le connecter à l'objet de portée angulaire.

Comment puis-je utiliser la ressource ou le fournisseur de localisation correctement pour y parvenir?

Exemple d'URL: http: //localhost/Client/activitysubpage.asp? Activity = 6 & day = 1 Remarque: plus tôt dans la page, j'appelle les directives ng-app et ng-controller.

J'ai la bibliothèque angulaire aussi bien que la bibliothèque jquery chargée. // Ce que j'ai fait pour saisir l'objet url utilise url.js

<script> $(document).ready(function () { var myactivity =url('?activity'); var myday = url('?day'); $scope.currentactivity = myactivity; //I tried saving the value to a input variable and using ng-bind but it doesnt see the initial value. // $("#activityitem1").val(myactivity); }); </script> <input ng-model="currentactivity" id="activityitem1"> <h1>NG-MODEL VALUE IS {{currentactivity}}</h1> <div class="item item-bg-center-contain"> <div ng-repeat="items in activities | filter:{id : myactivity }:true"> <img ng-src="assets/images/activities/headers/{{items.id}}.jpg" class="img-responsive" style="width:100%;height:auto;" /> </div> //controller/instantiation code var myapp = angular.module("ActivitySelection", []); myapp.controller("ActivityController", function ($scope) { $scope.shortdates = ["Thursday, January 28","Friday, January 29","Saturday, January 30"]; $scope.currentactivity = 1; $scope.activities = [{ "id":1, "title":"Activity1"}, { "id":2, "title":"Activity2"}, ...... { "id":8, "title":"Activity8"} ]; 

Vous pouvez utiliser le service de localisation $ angularJS pour le même

 myapp.controller("ActivityController", function ($scope,$location) { var myParam=$location.search().YOUR_SEARCH PARAM //use myParam however you want. 

Voir $ angular docs pour plus d'informations

Je viens de créer un plunk pour toi. Passez par là.

Comment obtenir les paramètres de la chaîne de requête

Cet exemple est basé sur la bibliothèque de routage par défaut ngRoute angular. Faites-moi savoir si vous avez besoin d'un exemple d'ui-routeur.

Remarque: Dans cet exemple, j'ai utilisé $ route pour obtenir les paramètres. La raison en est que les $ routeParams ne sont mis à jour qu'après la fin d'un changement d'itinéraire. Cela signifie que vous ne pouvez pas compter sur $ routeParams étant correct dans les fonctions de résolution d'itinéraire. Au lieu de cela, vous pouvez utiliser $ route.current.params pour accéder aux paramètres de l'itinéraire.

J'espère que cela t'aides!.