2017-10-20 6 views
1

Je cherchais sur Google, mais je ne trouve pas la réponse. Je souhaite afficher l'URL dans une div après avoir cliqué sur l'URL en utilisant $ http (liens dynamiques).Afficher l'URL dans un div après cliquez sur le href sur angulaire

Par exemple:

<ul> 
    <li ng-repeat="file in files | filter:search as results" ><a ng-href="{{getSrc(file._name)}}" target="_blank">{{file._name}}</a></li> 
    <div> 
      **SHOW URL OF CLICKED LINK HERE** 
    </div> 
    </ul> 

    $scope.read = function(){ 
    var request = $http({ 
     method : 'GET', 
     url : 'request.php', 
    }); 
    request.then(function(response){ 
     $scope.files = response.data; 
    }, function(error){ 
     alert(error.data); 
    }); 
} 

$scope.getSrc = function(src) { 
    return 'files/' + src; 
}; 

tout essayé, mais je ne peux pas le faire fonctionner. Toute aide serait appréciée!!!

Répondre

2

Je pense que vous pourriez mettre un ng-clic sur le lien vers une fonction que vous définissez sur la portée et lui transmettre l'adresse du lien. Ensuite, définissez cela à une variable de portée et à l'intérieur de votre div montrer cette variable de portée. Au début, il ne s'affichera pas parce que vous l'initialiserez à null, mais une fois que vous aurez cliqué sur le lien, il appellera la fonction ng-click en passant le nom du lien et vous définirez la variable et maintenant elle s'affichera.

<ul> 
    <li ng-repeat="file in files | filter:search as results" ><a ng-href="{{getSrc(file._name)}}" target="_blank" ng-click="linkClicked(file._name)">{{file._name}}</a></li> 
    <div> 
      {{clickedLink}} 

    </div> 
    </ul> 

$scope.clickedLink = null; 

$scope.linkClicked = function(link){ 
    $scope.clickedLink = link; 
} 
+1

Juste un violon à ajouter [jsFiddle] (https://jsfiddle.net/nL7vzbw2/) vous avez une faute de frappe sur la ligne '$ scope.linkClicked (link) { ' qui devrait être '$ scope.linkClicked = fonction (lien) { ', je pense! –

+0

A travaillé !!! J'ai remarqué cela et modifié le code dans votre message. Merci!!! – HomerO

+0

@NarenMurali Oui, merci. Mon mal comme je l'ai changé à l'aide de classes pour les contrôleurs si mélangé le style :). Merci pour l'édition. – user441521

1

Essayez de modifier:

$scope.result; 
$scope.getSrc = function(src) { 
    $scope.result = 'files/' + src; 
    return $scope.result; 
}; 

puis le code html:

<div> 
    {{result}} 
</div> 
+0

Il voulait que cela s'affiche seulement après qu'il a été cliqué. Nous avons la même idée avec ça. – user441521

+0

Bien sûr, essayé, car le {{result}} renvoie le dernier élément du tableau. Je veux afficher seulement l'élément cliqué, et changer quand cliquez sur un autre. – HomerO