2017-09-29 3 views
0

다음 시나리오를 사용할 수 있습니까?한 응용 프로그램의 두 탭 사이의 상호 작용이 가능한 Angular 2입니까?

하나의 응용 프로그램이 있고 두 개의 다른 탭에서 응용 프로그램의 두 부분을 열어 보겠습니다. 어떤 종류의 "Listening Mode"에서 응용 프로그램의 한 부분을 가질 수 있습니까? 그래서 응용 프로그램의 한 부분에서 변경 사항을 적용하면 즉시 다른 부분의 변경 사항이 구현되고 탭은 자동으로 새로 고쳐지고 변경 사항을 보여줍니다. 그런데 하나의 탭에서 애플리케이션의 한 부분에서만 모든 작업을 수행하면 어떻게됩니까?

추신 : 저는 Angular 2 프레임 워크를 언급하고 있습니다.

+0

예. 당신은 당신의 서비스로부터 관측 대상을 설정할 수 있고, 두 구성 요소를 모두 구독 할 수 있습니다. – pixelbits

답변

0

그냥 일반 자바 스크립트를 사용하십시오. 이를 위해 storage event이 있으며, 이벤트 추적은 저장소에서 변경됩니다. 이런 식의 서비스를 만들어라.

$(window).on('storage', storageChanged); 
function storageChanged(){ 
    //all your tabs will listen this event  
} 
0

당신이 2 개의 분리 된 브라우저 탭에 대해 말하면, 나는 그렇게 생각하지 않는다. 그러나 스토리지에 대한 변경 사항을들을 수있는 방법을 생각해 볼 수 있습니다. 이 경우 탭 중 하나는 저장 항목을 변경하고 다른 하나는 동일한 항목을 듣고 그들을 적용됩니다 : 당신의 탭이 당신이 코드를 추가해야합니다 동일한 코드를 사용하지 않는 경우

$(window).on('storage', storage_changed); 

function storage_changed(event) 
{ 
    if (ev.originalEvent.key != 'youritemname') return; // ignore other changes 
    var message = JSON.parse(ev.originalEvent.newValue); 
    if (!message) return; 

    //apply the changes to the second tab 

} 

을 둘 다 그렇지 않으면 충분할 것입니다.

이제 youritemname 이름의 항목이 변경되면 이벤트가 시작되고 두 탭에서 모두이를 청취하고 그에 따라 행동 할 수 있습니다.

좋은 점은 저장소를 읽을 필요조차 없다는 것입니다.

0

각 탭마다 새로운 각도 인스턴스가 열리고 공유되지 않기 때문에 두려워하지 않습니다.