2013-08-11 2 views
3

http://sharethis.com의 소셜 버튼이있어 내 앱의 프로필 페이지에 넣을 수 있습니다.AngularJS가 상태 변경 후 JS를 다시 초기화합니다.

<script type="text/javascript" src="http://w.sharethis.com/button/buttons.js"></script> 
<script type="text/javascript">stLight.options({publisher: "66053d76-64c6-4378-8971-aac043dbbc5d", doNotHash: false, doNotCopy: false, hashAddressBar: false});</script> 

내 프로필에 마크 업 : 나는 내 index.html을에 내가하기 ShareThis에서받은 코드를 삽입 한

등 상태 관리 및 페이지 전환의 UI 라우터를 사용하고 있습니다 페이지 :

<span class='st_twitter_hcount' displayText='Tweet'></span> 
<span class='st_facebook_hcount' displayText='Facebook'></span> 
<span class='st_googleplus_hcount' displayText='Google +'></span> 

소셜 버튼은 프로필 페이지에서 새로 고침 할 때만로드됩니다 (예상되는 동작 임). 앱이 홈페이지에서 말하는 것으로 부트 스트랩 한 다음 프로필 페이지로 전환하면로드되지 않습니다.

이러한 자바 스크립트 파일을 다시 초기화하거나 다시로드하는 데 사용할 수있는 트릭이 있습니까?

+1

해결 방법을 찾으셨습니까? – mauricio

답변

0

shareThis를 사용하고 싶기 때문에 아마도 대답이 아니지만 addThis를 사용하기로 결정했습니다. 왜냐하면 shareThis 작업을 각도로 만들 수있는 방법을 찾지 못했기 때문입니다.

추가하면 비동기 로딩과 동적 렌더링이 가능합니다.

여기에 설명 된대로 작동하게 만들 수 있습니다 : http://support.addthis.com/customer/portal/articles/1293805-using-addthis-asynchronously.

그리고 당신은 아마 여기에 설명 된 것처럼, 각도 지시로를 해보고 싶어요 : http://www.laurentiu-ciovica.com/2013/07/angularjs-addthis-directive.html

8

내가하기 ShareThis 소스 코드를 조사 시간을 보내고했습니다 및 페이지 컨트롤러, 버튼을 만들어이 기능을 발견이 추가 함수를 호출하면 단추가 추가됩니다.

stButtons.makeButtons(); 
+0

오, 고마워, 나는 Ember에게 이것을 필요로했고이 대답을 찾을 때까지 많은'stLight' 방법을 시도했다. – Huafu

1

문서 또는 모범 사례에 따르면 이것이 최선의 방법은 아니지만 이는 내 해결책이었습니다. 나는 새로운 ShareThis 버튼 세트가로드되기를 원하는 특별한 관점을 가지고있었습니다. 그래서 버튼을 다시 초기화하는 함수를 만들었습니다. AlexG 제프 칼라로

<div ng-init="loadShareThis()"> 
    <share-buttons></sharebuttons> 
</div> 
0

답변이 내게 준 :

$scope.loadShareThis = function() { 
    stButtons.makeButtons(); 
    } 

내가 다음 내 HTML에서 NG-초기화를 사용하여 함수를 inititalize : 여기

내가 내 컨트롤러에 배치하는 기능입니다 방향,하지만 여전히 나를 위해 작동하지 않았다. 나는 $ timeout에 랩

stButtons.makeButtons() 

을 써야한다. HTML에서

나는 (JADE 구문)

my-directive(ng-repeat="review in myReviews" ng-init="loadShareThis()") 

가지고 내 컨트롤러에서 나는

$scope.loadShareThis = function() { 
    $timeout(function(){ 
     stButtons.makeButtons(); 
    }); 
    }; 

이 각도 다이제스트 사이클 뭔가를 가지고 있습니다.

관련 문제