하위보기를 만들 때 영역과 컨테이너의 차이점을 이해하는 데 어려움을 겪고 있습니다. 부모 내에서 하위보기를 만들 때 다른 것에 대한 하나의 사용 사례는 무엇입니까?Chaplin Regions vs Containers and Subview
두 번째로 이러한 두 옵션과 함께 하위보기로 항목을 등록하는 방법은 무엇입니까? 용기를 사용할 때만 상관없이 일어날 필요가 있습니까?
하위보기를 만들 때 영역과 컨테이너의 차이점을 이해하는 데 어려움을 겪고 있습니다. 부모 내에서 하위보기를 만들 때 다른 것에 대한 하나의 사용 사례는 무엇입니까?Chaplin Regions vs Containers and Subview
두 번째로 이러한 두 옵션과 함께 하위보기로 항목을 등록하는 방법은 무엇입니까? 용기를 사용할 때만 상관없이 일어날 필요가 있습니까?
채플린의 지역과 용기는 매우 유사합니다. 지역과 컨테이너 간의 주요 차이점은보기가 추가되는 방식입니다.
영역은 Chaplin Mediator를 통해 추가되는 추상 문자열 매핑입니다. 컨테이너는 뷰가 알아야 할 선택자 (보기 선언에서 전달되거나 설정 됨)입니다. 채플린 소스 코드 (view.coffee 라인 77)에서 발견
:
지역은 상위에서보기 을 분리하는 것을 목표로 본질이라는 선택기에 있습니다.
반면에 컨테이너는보기에서 직접 전달하거나 직접 설정하는 선택기 문자열입니다.
이 사용 미묘한 차이는 다음과 같습니다 지역은보기가 연결을 시도 할 때 등록되지 않은
# region is a string mapping
# MyView does not need to know about the associated DOM element
class MyView extends Chaplin.View
region: 'myRegion'
# container is a selector string
# MyView needs to know about the associated DOM element
class MyView extends Chaplin.View
container: 'div#myContainer'
경우 오류가 발생합니다. 지역 및 컨테이너가 구현되는 방법을
는 약간 난이도가 가져옵니다 true로 설정보기의 noWrap
재산이있는 경우
는이 지역 요소 또는 컨테이너 요소가보기의 el
된다.
그러나 region
과 container
이 모두 표시되면보기의 el
속성이 먼저 region 요소와 컨테이너 요소로 설정됩니다. 결과는 View의 el
속성이 컨테이너 요소로 설정됩니다.
소스 코드 : view.coffee line 147
이보기를 부착 오는, 그러나,보기는 먼저 선언 된 지역에 자신을 연결을 시도합니다. 그런 다음 DOM에 아직없는 경우 컨테이너에 첨부하려고 시도합니다.
이 의미는 region
과 container
이 모두 선언되면 실제로 뷰가 region 요소에 추가되고 절대로 컨테이너 요소에 추가되지 않는다는 것을 의미합니다.
소스 코드 : view.coffee line 443
이 두 가지 행동을 감안할 때 그것이보기에 영역과 용기 모두를 선언하는 것은 좋은 생각되지 않을 것 (적어도 true로 noWrap
를 설정 한 경우).
두 지역 및 컨테이너의 구현의 차이는 매우 미묘하다 :
하위 인스턴스로 View 인스턴스를 등록하면 어떤 옵션을 선택 하든지 관계없이 동일한 작업을 수행해야합니다.
컨테이너 옵션을 통해 View 인스턴스를 추가하는 경우에도 View 인스턴스를 하위 뷰로 등록 할 필요가 없습니다. 하위보기는 자동으로 삭제되는 뷰의 문자열 추상화입니다.