web-dev-qa-db-fra.com

Fonction angularjs dans ng-href

Je veux appeler une fonction dans ng-href et renvoyer le lien depuis la fonction.

Lorsque je clique sur la fonction, il envoie la page à cette fonction dans l'URL. Comme:

localhost/pageLink ()

<a ng-href="pagelink()" >Link</a>

Comment puis-je exécuter la fonction et renvoyer le lien correct?

21
user4773604

L'interpolation pourrait faire l'affaire:

<a ng-href="{{pagelink()}}">Link</a>

Modifier:

Pour tous ceux qui se plaignent, que cela exécutera le code au démarrage: c'est exactement ce que doit faire! Il surveille la méthode pagelink pour les modifications et met à jour l'attribut href.

Les questions originales étaient:

Comment puis-je exécuter la fonction et renvoyer le lien correct?

pagelink() ne doit pas gérer le routage mais renvoyer une chaîne pointant vers la route cible. Voir la documentation ngHref .

Si vous souhaitez gérer le routage par vous-même, vous devriez plutôt utiliser ngClick, pas ngHref.

44
naeramarth7

En supposant que pagelink() est à $rootScope, vous utiliseriez ng-click:

<a href="" ng-click="pagelink()">Link</a>

Vous avez besoin du href="" pour que le navigateur change le curseur sur la souris.

7
Scott Koland