Angulaire ng-repeat passer le paramètre de liaison href
J'ai déjà un graal application, construit à l'aide de GSPs et personnalisé tagLibs. J'ai besoin d'adopter un nouveau code qui utilise AngularJS.
Je suis nouveau sur AngularJS.
Précisément, j'ai les liens existants qui ont été générés avec des balises personnalisées, telles que:
<g:custonSearchLink id="${ent.id}" >
qui évaluent à
<a href="fullPath/controllerName/method/X", onclick="jQuery.ajax((type:'POST', url:'fullPath/controllerName/method/X', success:function(data,textStatus){jQuery('tableDiv').html(data);}, error:function(...)){}});return false" >...
où X est l'id param. J'ai besoin d'avoir le ng-repeat générer ces liens, et de passer le "X" param valeur dans le href et ajax chemins d'url.
Donc, je comprends que je peux utiliser le imbriquée des accolades " {{}}" pour passer le X param de l'objet dans le href de la chaîne,
<li ng-repeat="obj in myList track by obj.id" >
<a href="fullPath/controllerName/method/{{obj.id}}"
mais le onclick url ajax est imbriquée dans une seule chaîne de caractères entre guillemets à l'intérieur de la onclick chaîne. Comment puis-je passer le "X" param dans que?
Cela ne fonctionne pas:
onclick="jQuery.ajax((type:'POST', url:'fullPath/controllerName/method/{{obj.id}}',
Noter que le "nom de chemin complet" dans mon cas, c'est "https://localhost:8453/" depuis le serveur qui répond à l'appel AJAX est en cours d'exécution sur un autre port que le serveur hébergeant le PSG.
- vous ne pouvez pas passer angulaire de la portée des variables dans
onclick
. Angulaire de la portée des variables ne sont pas dans l'espace de noms global qui onclick références.
Vous devez vous connecter pour publier un commentaire.
Dans ce cas, vous pouvez utiliser ng-cliquez sur
et de définir une fonction javascript dans votre angulaire de contrôleur dans le même champ d'application et invoquer l'ajax à l'aide de $http fournisseur.
À l'aide de ng-href et ng-cliquez sur vous permet d'utiliser AngularJS portée des variables en javascript gestionnaires d'événements. Comme:
Si votre gestionnaire d'événements click serait:
Comme mentionné par Shashi, vous pouvez mettre le feu à la requête HTTP dans un champ d'application de la fonction, bien que la façon dont vous êtes actuellement à la manipulation de ce avec inline AJAX devrait fonctionner.