Closed wjdtprP closed 4 months ago
$self.find
메서드가 해당 id의 API를 찾아내지 못합니다.
직지 v3.3.31
버전에서 $self.find
API 메서드의 로직이 변경되었기 때문입니다.
~ v3.3.30
이전 버전: 페이지 내의 모든 element를 대상으로 검색v3.3.31 ~
이후 버전: $self
(주로 그룹 요소에서) element 하위 요소만을 대상으로 검색따라서 위의 경우 모션_버튼형
요소의 하위에서 이미지_a
, 이미지_b
의 id를 찾지 못해 정상동작 하지 않습니다.
(이전 버전에서는 정상동작하는 코드입니다.)
기존 $self.find()
, $self.findAll()
API 는 페이지 내 모든 element를 대상으로 검색하므로 어떤 element에서 API를 사용하던 같은 결과가 나오게 됩니다.
이것은 페이지에 같은 컴포넌트를 두개 이상 사용하면 id나 name이 중복되어 검색되기 때문에 컴포넌트 외부의 요소들을 참조하게되는 원치않는 문제가 발생하게 됩니다.
의도적으로 작성하지 않는 이상 컴포넌트는 기본적으로 자신과 자신의 하위 요소의 기능에만 관여하는 것이 좋습니다.
위에서 설명한대로 이전 $self.find()
, $self.findAll()
API는 페이지 전체를 검색하므로 다음 코드와 같은 결과를 보냅니다.
$self.find : $self.document.find 메서드 결과와 같음
$self.findAll : $self.document.findAll 메서드 결과와 같음
따라서, 다음과 같이 작성하면 v3.3.31
버전에서도 정상적으로 동작합니다.
이는 API 업데이트 할때 하위 버전 호환성을 염두하지 못해 발생한 문제로 다음과 같이 해결할 예정입니다.
$self.find()
, $self.findAll()
API 를 이전 버전에 동작하던 로직으로 되돌림$self.children()
, $self.childrenAll()
API로 rename 하여 새로 추가함Jik-ji_Editor_3.3.32 버전(이상)에서 처리(구현) 되었습니다.
오브젝트 id를 캡슐화에 지정하였을때, 정상적으로 작동하지 않습니다. 모션 컴포넌트_버튼형.zip