2013-10-16 12 views
7

Mam problemy z wdrażaniem skromnego przycisku tweet w mojej witrynie przy użyciu Angular. Zrobiłem kilka badań i znalazłem kilka rozwiązań dla strony AJAX używając jQuery, ale o ile mogę powiedzieć, używając rozwiązania (poniżej) wymagałoby uruchomienia skryptu poza kontrolerem, a zatem byłoby nieangularne i złe.Jak zaimplementować przycisk Twittera w trybie kątowym

Czy ktoś rozwiązał ten problem w sposób kątowy lub miał jakieś wskazówki, jak?

Dzięki.

rozwiązanie dla technologii AJAX:

//adding button to dom 
$('#tweetbutton').append('<a class="twitter-share-button" href="http://twitter.com/share" data-url="http://www.google.nl>Tweet</a>'); 
//loading widgets 
$.getScript('//platform.twitter.com/widgets.js', function(){ 
//calling method load 
twttr.widgets.load(); 

albumu: Cannot update tweet button with Ajax

Odpowiedz

7

Oto sedno, które mogą pomóc: https://gist.github.com/Shoen/6350967

directive.js

directives.directive('twitter', [ 
    function() { 
     return { 
      link: function(scope, element, attr) { 
       setTimeout(function() { 
         twttr.widgets.createShareButton(
          attr.url, 
          element[0], 
          function(el) {}, { 
           count: 'none', 
           text: attr.text 
          } 
         ); 
       }); 
      } 
     } 
    } 
]); 

index.html

<script src="http://platform.twitter.com/widgets.js"></script> 

<a twitter data-text="Your text: {{file.name}}" data-url="http://127.0.0.1:3000/{{file.link}}"></a> 
+0

Dzięki Manuel. Zostawię to otwarte na chwilę, ponieważ sugerowana metoda nie jest idealna, jeśli dane nie są ładowane po załadowaniu strony. Nadal dobra odpowiedź! – axzr

0

Wziąłem strony z podobnego rozwiązania Facebooku i był w stanie wdrożyć to w następujący sposób.

Państwa zdaniem, należy użyć standardowego przycisku Link składnię:

<a href="https://twitter.com/share" class="twitter-share-button" data-text="Here's something cool">Tweet</a> 

Następnie w kontroler (lub nawet w swoim obciążeniem APP) można użyć następującego kodu, aby wstrzyknąć potrzebne JavaScript właściwie do strony:

// Load twitter sharing button 
    (function(d,s,id){ 
     var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https'; 
     if(!d.getElementById(id)){ 
      js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js'; 
      fjs.parentNode.insertBefore(js,fjs); 
     } 
    }(document, 'script', 'twitter-wjs')); 

To odpowiednio wstrzyknie kod na stronę i pozwoli na działanie przycisku Twitter.

+0

nie działa. tylko ładowanie po raz pierwszy. – marukobotto

Powiązane problemy