아우렐 리아 구성 요소에 컨테이너없는 기능을 사용할 때 이상한 동작이 나타납니다. 우리는 SVG 컨테이너에 사용자 정의 요소를 작성했습니다. SVG 컨테이너 내에서만 SVGElements 태그가 허용되므로 컨테이너에없는 태그를 사용하여 사용자 정의 요소 태그를 DOM에 추가하기 전에 제거해야했습니다. 우리는 Aurelia 릴리스 버전 1.0.0을 사용 중이며 webpack으로 SPA를 구축하고 있습니다.VM에서 '컨테이너 없음'을 사용하는 경우와 사용자 정의 요소에서 HTML보기에서 '컨테이너 없음'을 사용하는 경우의 차이점
여기 컨테이너없는 사용의 2 구현을 보여주는 gistrun 예제를 찾을 수 있습니다. https://gist.run/?id=58ba6282ad54c1263eec3a141fe42183
이 예제에서는 2 개의 뷰 모델을 만들고이를 사용자 정의 요소에 바인딩합니다. as-element="compose"
을 사용하여 aurelia에게 내가 viewmodel을 만들고 Aurelia가 VM을 생성해서는 안된다고 말하십시오. 뷰 모델에서 @containerless
태그가 있지만, HTML보기에서 '컨테이너가'를 나던
CustomElement : 사용자 지정 요소에 이러한 차이는 컨테이너가 태그입니다.
withattr 구성 요소는 HTML보기에서 'containerless'가 아니지만 Aurelia HUB에 설명 된대로 Viewmodel에
@containerless
태그가 있습니다.
두 상황 모두에서 파란색 직사각형이 표시 될 것으로 예상됩니다. customelement 태그는 컨테이너가없는 태그 때문에 Aurelia에서 제거됩니다. 그러나 @containerless
태그 나던 구현으로, 작동하는 것 같다 2.
질문 : 이러한 구현은 서로 다른 출력을 왜 어떤 단서? 올바른 것은 무엇입니까? Aurelia Docs에 명시된 바와 같이 @containerless
태그를 viewmodel에 배치해야한다고 2시를 기대합니다.
어떤 도움을 주시면 감사하겠습니다 :)
이
설명해 주셔서 감사합니다. 'as-element = "compose"를 제거하면, aurelia는 우리 자신의 생성 된 VM 대신에 ViewModel을 자동 생성하여 VM에 대한 더 많은 제어권을줍니다. 정확하지는 않지만 권장되지는 않지만 SVG 요소를 사용하기 때문에'@ containerless' 태그가 필요합니다. 컨테이너가 없으면 SVGE 요소 만 표시되므로 SVG 요소는 표시되지 않습니다. 내일 작성 제안에 대해 살펴 보겠습니다. 오늘 시간이 없어. – Henry
오, 저는'@ 컨테이너가 필요합니다 '그 자체를 반드시 주장하지 않았습니다. 단지 브라우저 별 특이 사항에 특히 민감한 as-element와의 조합 일뿐입니다. VM의 인스턴스화를 제어해야하는 특별한 이유가 있습니까? 아마도 다른 출구가있을 것입니다. –