Я пытаюсь установить ссылку от дочернего элемента на компонент в его родительском элементе. Я ожидал, что смогу ссылаться на него, вызывая this.el.parentEl.components['parent']
в функции init (), но это возвращает undefined.
Другие тестовые случаи работают нормально:
1. Ссылка на дочерний компонент от родительского компонента работает нормально из родительского компонента.
2. Ссылка на родительский компонент из фрагмента кода ниже HTML.
3. Ссылка на родительский компонент из дочернего элемента из фрагмента кода под html.
Это проблема жизненного цикла? Почему в этом случае разница между ребенком и родителем?
<script src="https://aframe.io/aframe/dist/aframe-master.min.js"></script>
<script>
AFRAME.registerComponent('parent', {
multiple: false,
init: function () {
this.child = this.el.children[0].components['child']
console.log("child component: ", this.child); //This works
}
})
AFRAME.registerComponent('child', {
multiple: false,
init: function () {
this.parent = this.el.parentEl.components['parent']
console.log("parent component: ", this.parent); //Undefined
}
})
</script>
<a-scene>
<a-entity parent>
<a-entity child></a-entity>
</a-entity>
</a-scene>
<script>
var parent = document.querySelector('[parent]').components.parent
console.log("parent component from below: ", parent); //This works
var parentfromchild = document.querySelector('[child]').parentEl.components['parent']
console.log("parent from child from below: ", parentfromchild); //This works
</script>