2017-02-15 1 views
0

require.js을 사용하여 모듈 종속성을로드하려고 시도했지만 지금까지는 작동하지만 의심 스럽습니다. 로드 require.js documentation 같이 나는이 스크립트 태그를 포함 된 모듈을 사용하는 HTML에서require.js 모듈에서 클로저 함수에 액세스하는 방법은 무엇입니까?

define(['./panel/View', './panel/TitleView'], function(View, TitleView) { 

    return function test(container) { 

     // main view 
     var panel = new View(container, 'main'); 
     var panelTitle = new TitleView(panel.getContainer(), 'main-title'); 
     panelTitle.setTitle('Properties Panel'); 
     //panelTitle.addCss('pjs-panelTitle'); 
     panel.addView(panelTitle); 

     // sections 
     var top = new View(panel.getContainer(), 'top'); 
     panel.addView(top); 
     var middle = new View(panel.getContainer(), 'middle'); 
     panel.addView(middle); 
     var bottom = new View(panel.getContainer(), 'bottom'); 
     panel.addView(bottom); 

    }; 
}); 

: 나는 panelTest.js를 모듈을 테스트하기 위해 약간의 기능을 생성라는 파일에 배치 한 panelTest.js.

<script data-main="panelTest.js" 
    src="require.js"></script> 

내 질문은이 모듈 외부에서 온 가정되는 용기 매개 변수 이후 모듈 외부에서 테스트 함수를 호출하는 방법을 입니다.

답변

0

RequireJS에서 제공하는 적절한 채널을 통해 모듈에 액세스해야합니다. 당신은 RequireJS를로드 한 후 나타나는 script 태그에 다음과 같이 그것을 할 수 :

require(['panelTest'], function (panelTest) { 
    panelTest(/* some value */); 
}); 

당신이 보여 코드, 당신의 panelTest 모듈은 그래서 "주 모듈"로 정말 이해하지 않는 것을 감안할 때 I data-main으로 표시하지 않습니다.

당신이 꽃밥 모듈에서 사용하려면, 자신의 파일에 모듈을 넣고 같이 그것을 정의 :

define(['panelTest'], function (panelTest) { 
    panelTest(/* some value */); 
}); 
관련 문제