2013-04-16 1 views
0

내가 뭔가 잘못하고 있다는 뚜렷한 가능성이 있기 때문에 더 좋은 방법이있을 경우를 대비하여 내가 성취하려는 것을 설명하고 싶습니다.연결된 HTML에서 WinJS.UI.Pages.define을 사용하여 정의 된 함수를 호출하는 구문은 무엇입니까?

플랫폼 : HTML5/WinJS 용 탐색 템플릿을 사용하는 Windows 8 앱.

데이터를 쿼리하고 d3.js를 사용하여 결과 집합을 시각화하는 몇 가지 PageControls가 있습니다.

WinJS.UI.ListView를 사용하여 해당 페이지/그래프에 대한 링크를 제공하는 또 다른 PageControl (대시 보드)이 있습니다. 현재 ListView에서 일부 정적 이미지를 사용하고 있습니다. 내가하려는 것은 그래프 페이지에 액세스하여 선택 화면에 그래프의 "더 작은"버전을 제시하는 것입니다.

시도한 것 중 일부 : - iFrames가 스크롤되지 않는 것처럼 보이며 결과가 꽤보기 흉하게 보입니다. - 스크린 샷을 프로그래밍 방식으로 수행하는 방법을 알아낼 수 없었습니다 (공유 계약을 사용하여 그래프를 공유 할 때 동일한 기술을 사용할 수 있으므로이 방법이 가장 좋습니다). - Page.render 작업을 시도했지만 html 페이지 내의 어딘가에서 draw() 함수를 호출하면 작동하는 것 같습니다. 즉, ready() 함수가 렌더링의 일부로 호출되는 것처럼 보이지 않습니다. 그래서, 드로잉 코드를 html로 옮겼습니다. (정말 좋아하지 않습니다.) 괜찮습니다. 내가 원하는 것은 Draw 함수를 Page.define으로 옮기고 HTML의 한 줄 스크립트에서 호출하는 것입니다 (더 좋은 방법이있는 경우는 제외). 올바른 구문을 알아 냈어.

일반적으로 작업을 수행하는 더 좋은 방법에 대한 구문이나 조언에 대한 조언을 주시면 감사하겠습니다.

답변

0

드로잉 코드를 별도의 .js 파일에 넣는 것이 좋습니다. 앱의 어느 곳에서나 참조 할 수 있습니다. 다음과 같이 설정하십시오.

WinJS.Namespace.define('My.App.Namespace', { 
    drawingFunction: function() { 
     //code goes here 
    } 
}); 

이 파일을 drawing.js라는 파일에 저장하고 default.html에 포함 시키십시오. 그런 다음 My.App.Namespace.drawingFunction()을 html 또는 javascript에서 호출 할 수 있습니다.

관련 문제