2013-10-19 1 views
0

사용자의 권한에 따라 조수에 표시된 구성 요소 목록을 수정하려고합니다. 설명해 드리겠습니다. here.CQ5에서 Sidekick 및 Insert 대화 상자에 대한 구성 요소 목록을 동적으로 정의하십시오.

내가 알고 싶은 것은 수정 된 허용 된 배열을 인수로받은 것입니다. 배열에 대한 수정 사항이 로컬 범위에있는 것으로 보이기 때문입니다. 예 : 허용 된 구성 요소가 기본 목록 구성 요소로만 구성되도록하려면이 같은 작업을 수행합니다. 컨트롤이 이벤트를 트리거 기능으로 돌아갑니다 일단

function MyHandler(cell, allowed, componentList) { 
    allowed = []; 
    allowed.push("/libs/foundation/components/list"); 
} 

그러나

는 이러한 변경 사항은 표시되지 않습니다. 배열 등을 반환해야합니까? 내가 뭔가를 놓친다면 설명해 주시겠습니까?

답변

0

확인. 마침내 문제를 파악했습니다. 내 처리기로 전달 된 기존 구성 요소 목록을 지우고 싶었습니다. 그 중 어떤 것에 대해서는 allowed = [];을 사용했습니다.

이렇게하면 허용되는 배열에 대한 기존 참조가 모두 제거되었습니다. (이에 대한 자세한 내용은 here을 참조하십시오.)

따라서 allowed.length = 0;으로 변경하면 문제가 없습니다.

function MyHandler(cell, allowed, componentList) { 
    allowed.length = 0; 
    allowed.push("/libs/foundation/components/list"); 
}