2012-09-12 3 views
0

Liferay의 포틀릿은 페이지 당 한 번 또는 페이지 당 여러 번 추가 될 수 있습니다. 포틀릿을 인스턴스화 할 수있는 포틀릿이라고도하는 여러 번 추가 할 수 있습니다.인스턴스 가능한 Liferay 포틀릿에서 전역 JS 변수를 처리하는 방법은 무엇입니까?

인스턴스 가능한 포틀릿에서 한 포틀릿의 범위에 전역 JS 변수가 필요합니다. 현재 내 JSP 파일 (추한, 내가 아는 ^^)에서 JS 코드가 내 변수 이름에 포틀릿 네임 스페이스를 사용, 예 :

var <portlet:namespace/>oldUsedCPUsValue = 0; 

을하지만 지금은 main.js에 내 모든 JS 코드를 넣을 파일, 여기서 필자는 분명히 포틀릿 네임 스페이스를 사용할 수 없습니다. 내가 어떻게 할 수 있니? 전역 배열 및 키로 포틀릿 네임 스페이스?

답변

0

Javascript는 전문이 아니지만 main.js에 코드를 넣을 수 있습니다 (네임 스페이스를 사용하면 다른 포틀릿에서 동일한 코드로 오버로드되는 경우 신경 쓸 필요가 없습니다. 내 javascript-special- 지식 : main.js가 두 번 포함될지를 검사조차하지 않았다. 한번 확인해 본다면 한번만 포함 할 수도있다.

그런 다음 네임 스페이스를 사용할 수있는 jsp 페이지에서 호출/초기화한다.

(실제 네임 스페이스를 신경 쓰지 않고 하나의 네임 스페이스 만 필요로하는 경우) AlloyUI (YUI 확장)를 사용하면 이름 공간이 생깁니다. 무료로 ese :

AUI().use('node', 'module2', 'foo', function (A) { 
    // your code and 'global' variables go here. 

    A.foo.bar(); 

    // the namespace ends here 
}); 
관련 문제