sitelink1 | |
---|---|
sitelink2 | |
sitelink3 | |
extra_vars4 | |
extra_vars5 | |
extra_vars6 |
http://www.ibm.com/developerworks/kr/library/tutorial/wa-dojowidgets/section8.html
Listing 27. test.html: 정적 내포 HTML 예제
Listing 28. dojoAjax/src/widget/HelloWorld.js: 정적 내포 HTML 전송하기
Listing 29. dojoAjax/src/widget/HelloWorld.js: 내포 HTML 동적으로 추가하기
내포 HTML
이 절에서는 Dojo HTML 위젯 생성을 포함하여 좀더 복잡한 문제를 몇 가지 고려할 것이다. 먼저 위젯 요소 속의 HTML을 다루는 여러 기술을 알아보겠다.
위젯 요소 내에 정적으로 정의한 HTML을 다뤄야 한다면 Listing 27을 참고하라.
Listing 27. test.html: 정적 내포 HTML 예제
|
Dojo는 위젯을 생성할 때 그것을 정의하기 위해 사용한 DOM 요소를 삭제한다. 그래서 내포된 HTML DOM 요소가 삭제되기 전에 필요한 요소를 모두 옮길 필요가 있다. 이렇게 하기 위해 Dojo 위젯의 메서드 fillInTemplate()
을 재정의해야 한다. 이 메서드는 원래 HTML DOM 요소와 이미 생성된 Dojo 위젯을 모두 다룰 수 있게 해준다. 그 방법은 Listing 28에서 살펴보겠다(원래 상위 클래스의 fillInTemplate()
메서드를 호출해야 함을 명심하라).
Listing 28. dojoAjax/src/widget/HelloWorld.js: 정적 내포 HTML 전송하기
|
S그래서 위 코드는 모든 HTML DOM 노드를 원하는 곳에 내포 HTML로 옮긴다. 이 경우에 domNode
결합점의 자식이 된다. HTML 템플릿은 문자열로 제공된다.
정적 내포 HTML을 다루는 또 다른 방법은 위젯 속성 isContainer
를 true로 설정하는 것이다. 이것은 Listing 28의 방법처럼 HTML 내용을 옮겨야 한다.
![]() |
![]()
|
동적으로 내포 HTML을 추가하는 방법은 두 가지가 있다. 이 방법은 동적 HTML이 어떻게 제공되느냐에 따라 다르다.
- 문자열로 제공되는 경우에는 원하는 DOM 노드의
innerHTML
속성을 이용해 새 HTML을 설정할 수 있다. - DOM 노드로 제공되는 경우에는 원하는 DOM 노드의
appendChild()
DOM 메서드를 이용하여 추가할 수 있다.
두 가지 모두 적당한 예는 다음과 같다.
Listing 29. dojoAjax/src/widget/HelloWorld.js: 내포 HTML 동적으로 추가하기
|