2016-11-15 5 views
2

Mein HTMLGet href Wert AngularJS

<a href="##product.like_url##" df-like-product class="icon-like trigger animated v-a-m" data-id="##product.id##" data-type="product" ng-class="{active:product.liked_by_user}"></a> 

I wan't den href Wert in meiner Anweisung zu bekommen, aber jedes Mal bekomme ich die Variablennamen

I ##product.like_url##

zurückgegeben werden, wenn Ich überprüfe das Element, das die URL korrekt ausgefüllt ist.

Dies ist meine Richtlinie

df.directives.directive('dfLikeProduct', function($window) { 
    return { 
    restrict: 'A', 
    link: function(scope, element, attrs) { 
     // Props 
     var $element = $(element); 
     var $amount = $element.prev(); 
     var url = $element.attr('href'); 

     // Methods 
     var likeProduct = function(){ 
     $.post(url, function(data){ 
      if (data == 1) { 
      element.removeClass('unlike').addClass('active like'); 
      var num = parseFloat($amount.text()); 
      $amount.text(++num); 
      } else if (data == -1) { 
      element.removeClass('active like').addClass('unlike'); 
      var num = parseFloat($amount.text()); 
      $amount.text(--num); 
      } 
     }).fail(function(){ 
      $window.location.href = '/login'; 
     }); 
     } 


     // Listeners 
     $element.on('click', function(e){ 
     e.preventDefault(); 
     console.log(url); 
     //likeProduct(); 
     }); 


     // Init 

    } 
    }; 
}); 
+0

, was Sie erreichen wollen !! Lesen Sie Ihren Beitrag Sie glauben, es vermittelt, was Sie eigentlich wollen – Aravind

+0

Ich möchte den Wert der href in meiner Direktive, so kann ich eine POST-Anfrage – Janvdt

+0

können Sie nicht Laravel Variablen innerhalb einer Winkelvariable verwenden; Einer ist Server-Seite, der andere ist Client-Seite. Wenn eckle die Verbindung generiert, wird sie niemals an Ihren Server gesendet, um von Laravel ausgewertet und ersetzt zu werden. Umgekehrt, wenn die Variable durch Laravel ersetzt werden soll, wird angular immer noch den Wert sehen, bevor der Server die Ersetzung vorgenommen hat. – Claies

Antwort

1

Zuerst Sie ng-href statt nur href verwenden müssen.

https://docs.angularjs.org/api/ng/directive/ngHref

Und Sie können diese $link.attr('ng-href');

hier mit bekommen, ist ein weiterer nützlicher Link: https://docs.angularjs.org/api/ng/function/angular.element

+0

Oke und als ich möchte den Wert von der ng-href? – Janvdt

+0

Ich habe die Antwort –

+0

bearbeitet, wenn ich dies tun, ich bekomme nur ## product.like_url ## zurückgegeben und nicht den tatsächlichen Link – Janvdt