2014-06-11 2 views
0

dojo 초보자이고 dojo 1.3.2를 사용하는 테이블에서 "거대한"프로젝트를 얻었습니다 (새로운 버전으로 업그레이드하는 것은 불가능합니다). 나는이 구버젼에서 가능한 한 문서를 소비하고 있으며 진전을 보이고 있지만 dojo maze에는 여전히 모퉁이가있다. 그렇지 않다면 완전히 이해할 수 없다. 아직 내 질문에 대한 답을 찾을 수 없어서 내 질문이 중복되지 않기를 바랍니다.위젯의 dojo 동적 크기 조정

프로젝트에서 표시되거나 숨겨진 위젯입니다. 일부 사용자 조치에서 위젯은 동적으로 크기를 조정해야합니다. 나는 dojo.query (오른쪽 dom 노드에 액세스하기 위해)과 dojo.style (실제 크기 조정을하기위한 것)을 사용하여 논리를 달성했다. 그리고 이것은 지금까지 잘 동작한다.

위젯이 처음으로 표시되면 위젯의 onShown 기능을 통해 함수가 호출 되기는하지만 기본 크기 (html로 제공됨)가 있습니다. 내 reiszing 논리는 크기 조정이나 위젯이 표시 될 다음 번에 사용자 작업이 발생한 후에 위젯에만 영향을 미칩니다.

표준으로 이러한 문제가 발생할 수있는 부분이 있습니까? 나는이 행동을 일으키는 프로젝트를 통해 의존성이 있는지를 알 수 없기 때문에 모든 힌트를 고맙게 생각한다. 어쨌든 이것은 두 번째 호출을 시도하는 것이 도움이되지 않으므로 dojo와 관련이있는 것으로 보이며 논리입니다.

감사합니다.

+0

이 질문을하기 위해 오래된 것들에 대한 답이 없어도 어떤 종류의 결말을 내겠습니까 : 올해는 마침내 dojo 버전을 1.10으로 업그레이드 할 수있었습니다. 코드는 이미 잘 작동했으며 예상했던대로했습니다. 그래서 이것은 이전 버전에 특정한 문제로 보입니다. 이것이 오늘날 대부분의 개발자에게는 중요하지 않다고 가정합니다. – Onsokumaru

답변

0

나는 당신이는 Dijit 수명주기에 읽어 제안 :

오라일리의 확실한 가이드 정말 오래된, 그러나 이것은 실제로 1.3.2에 대한 좋은 일이 : http://chimera.labs.oreilly.com/books/1234000001819/ch12.html#the_widget_lifecycle

가장 가까운 도장 내가 찾을 수있는 문서가 1.6 있지만 기본적으로 적용해야합니다 : http://dojotoolkit.org/reference-guide/1.6/dijit/_Widget.html

당신은 시작()보고 싶을 - 그() 위젯이 배치 될 것으로 예상된다 최초의 라이프 사이클 방법입니다 시작으로, 중요 DOM.

+0

이것은 나에게 도움이되는 정보이지만 유감스럽게도이 방법으로는 문제가 해결되지 않습니다. 내 크기 조정을하려면 코드가 배치 된 인스턴스에서 직접 참조되지 않는 특정 domNode가 필요합니다. 나는이 doNode를'dojo.query'로 얻었고 이것은 모두 정상적으로 작동합니다. 시작()에 대한 힌트 다음에는 검색 코드를이 장소에서 한 번만 실행 했으므로 (이 코드는 onShow에서 이전에 수행 한 것입니다.) 노드를 찾았습니다. 이 메서드에서 내 resize()를 호출하면 이미 설명한 동작이 변경된 것 같지 않습니다. 크기 조정은 다음 쇼 또는 사용자 작업시에도 계속 발생합니다. 어떤 생각? – Onsokumaru

+0

jsfiddle에서 실제 예제를 제공 할 수 있습니까? –