2013-03-14 3 views
1

나는 AngularJS와 작성된 페이스 북의 응용 프로그램을, 그 사실을 제외하고 매력 같은 모든 작품이 나는 응용 프로그램 예 : http의 다양한 링크 여물 가서 : // [base을]/#을/item/25 아직 남아있는 탐색 모음에 표시된 URL을 반영하지 않습니다. http://apps.facebook.com/MyTestApp/핸들의 URL 저점은 iframe

그래서 여기에 필요한 것은 내 응용 프로그램이 포함 된 iframe 외부에서 angularjs 라우팅을 반영하는 기능입니다.

+0

페이스 북의 애플 리케이션 iframe 내부에 거주하고 있습니다. 나는 당신이 iframe 문서 url을 부모 페이지의 URL과 "동기화"할 수 있다고 상상 했습니까, 그것이 페이스 북입니까? – Stewie

+2

브라우저 주소창에서 hashbang 경로를 관리하여 수동으로 처리해야한다고 생각합니다. 이 방법을 해결하는 첫 번째 StackOverflow 질문입니다 기본적으로 * 나는 URL의 해시 부분을 각도 $ 위치 서비스에서 javascript'location' 개체로 전송 한 다음 브라우저의 탐색을 취소한다고 생각합니다. . 질문의 예는 다음 JQuery와에게 http://stackoverflow.com/questions/2366481/attaching-hashtag-to-url-with-javascript 를 사용하여 각도 HTTP의 위치 문서입니다 : //docs.angularjs를 .org/guide/dev_guide.services. $ location – Jason

답변

0

은 결국 나는 PHP를 통해 최대한 빨리이의 index.php에 착륙으로, 한 손으로,

그래서

http://apps.facebook.com/MyTestApp/index.php?p=goto#item/48

같은 URL 뭔가에 매개 변수를 분석하여 상황을 관리했습니다 나는 $ _GET [ 'vairable']을 확인하고이를 angluar가 포함되기 전에 직접 실행되는 javascript 변수를 제공하는 해시 문자열을 얻기위한 트리거로 사용합니다. 따라서 mainController (인덱스와 연결된 각도 컨트롤러)가 실행되는 즉시 경로가있는 변수가 이미 인스턴스화됩니다. 이 시점에서 각도는 경로를 어딘가로 이동시키는 변수가 있음을 감지하고 경로를 가져옵니다. 여기

는 각도가 맞아 본 사람이다

<script language="javascript" type="text/javascript"> 
    var redirect_to = null; 

    $(function() { 
     <?php 
       // redirecting rulez 
      if(isset($_GET['p'])) { 
       ?> 
        redirect_to = window.parent.location.hash.substring(1); 
       <?php 
      } 
     ?> 

    }); 
</script> 

mainControl.js을 포함 바로 JQuery와 lib에 포함 후 바로 하기 전에, 몇 가지 코드

태그에서의 index.php이다 당신이 다른 컨트롤러에있는 index.php를

if(redirect_to != null) 
    $location.path(redirect_to); 

를로드 알 시간

if(redirect_to != null) 
    window.parent.location.hash = "#" + $location.path(); 

다른 모든 컨트롤러의 경우 반복하십시오. 즐겁게