Aframe 从this.el遍历到parentEl将返回未定义的元素,但反过来返回元素
我试图建立一个从子元素到其父元素中组件的引用。我希望能够通过在init()函数中调用Aframe 从this.el遍历到parentEl将返回未定义的元素,但反过来返回元素,aframe,Aframe,我试图建立一个从子元素到其父元素中组件的引用。我希望能够通过在init()函数中调用this.el.parentEl.components['parent']来引用它,但这将返回未定义 其他测试用例工作正常: 1.从父零部件中引用子零部件在父零部件中可以正常工作。 2.从html下面的代码段引用父组件。 3.从html下面的代码片段的子元素引用父组件 这是生命周期的问题吗?在这种情况下,为什么孩子和父母之间存在差异 <script src="https://aframe.io/aframe
this.el.parentEl.components['parent']
来引用它,但这将返回未定义
其他测试用例工作正常:
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>
AFRAME.registerComponent('parent'{
多重:假,
init:函数(){
this.child=this.el.children[0]。组件['child']
console.log(“子组件:”,this.child);//这很有效
}
})
AFRAME.registerComponent('child'{
多重:假,
init:函数(){
this.parent=this.el.parentEl.components['parent']
console.log(“父组件:”,this.parent);//未定义
}
})
var parent=document.querySelector('[parent]').components.parent
log(“下面的父组件:”,父组件)//这很有效
var parentfromchild=document.querySelector('[child]').parentEl.components['parent']
log(“来自下面的子对象的父对象:”,parentfromchild)//这很有效
调用
init
时,父级尚未初始化。场景从子对象加载到父对象。通过收听loaded
事件等待场景加载:我建议使用Glitch提供一个说明问题的可执行示例
<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>