Javascript 如何将引用传递到帧组件?

Javascript 如何将引用传递到帧组件?,javascript,components,aframe,Javascript,Components,Aframe,我正在编写一个自定义的aframe组件,用于基于非常长的对象数组渲染网格 框架文档仅将数组列为一种输入类型,您可以在其中传递属性,并将其解析为数组attributename=“1 2 3” 我希望通过如下方式将javascript引用从外部传递到组件: const hugeArray = [{somejson}, ...] const element = document.createElement('my-component'); element.<something happens h

我正在编写一个自定义的aframe组件,用于基于非常长的对象数组渲染网格

框架文档仅将数组列为一种输入类型,您可以在其中传递属性,并将其解析为数组
attributename=“1 2 3”

我希望通过如下方式将javascript引用从外部传递到组件:

const hugeArray = [{somejson}, ...]
const element = document.createElement('my-component');
element.<something happens here>
const hugarray=[{somejson},…]
const-element=document.createElement('my-component');
元素。

或者在DOM API之外创建一个组件,并将参数传递给组件的
init
方法

找到了一种方法

const hugeArray = [{somejson}, ...]
const element = document.createElement('a-entity');
element.setAttribute('mycomponent', '');
//... add component to DOM and let it initialize
element.components.mycomponent.customMethod(hugeArray);

所有这些假设组件都是以“mycomponent”的名称注册的,并且在init等旁边有一个方法
customMethod

使用
setAttribute
,它也可以接受对象和数组。检查
schema
而不是调用方法,因为
init
处理程序将在正确的时间自动为您调用


同意,这是一个更干净的选择。
AFRAME.registerComponent('mycomponent', {
  schema: { 
    yourData: {type: 'array'}
  },

  init: function () {
    console.log(this.data.yourData);
  }
});

const hugeArray = [{somejson}, ...]
const element = document.createElement('a-entity');
element.setAttribute('mycomponent', {yourData: hugeArray});
scene.appendChild(element);