使用A框架进行数据绑定

时间:2019-09-26 15:09:53

标签: angular aframe ar.js

我正在使用AR.js(A框架)和Angular构建WebAR。我们有一系列数据,并希望 当显示具有特定ID的标记时,显示数据。因此,我们需要设置一个A场景 与一个标记,进一步,我们想提出一个实体。

{
  "id": 6,
  "name": "Hammer",
  "lWartung": "2019-11-30T00:00:00.000Z",
  "nWartung": "2019-11-30T00:00:00.000Z"
}

我试图将a-marker的value属性设置为maschine.id,但没有成功。这对于实体也无效。

<a-scene id='scene1' embedded arjs='sourceType: webcam; debugUIEnabled: true; detectionMode: mono_and_matrix; matrixCodeType: 3x3;'>
                <ng-container *ngIf="maschinen.length > 0">
                   <ng-container *ngFor="let maschine of maschinen" > 
                                <pre>
                                   {{maschine | json}}
                                </pre>
                        <a-marker [id] =  "'M'+ maschine.id" type='barcode' >
                                <a-entity [id] = "'E'+ maschine.id"
                                geometry="primitive: plane; width: auto; height: auto"
                                material="color: #213d4a"
                                 >
                            </a-entity>
                        </a-marker>
                    </ng-container>
                </ng-container>

例如,我也不能将多属性组件的属性设置为文本。

entity.setAttribute('text',{value: '...'})

2 个答案:

答案 0 :(得分:0)

对于任何有兴趣的人。我发现 aframe-typescript-toolkit。 Wich让我设置所有属性。

答案 1 :(得分:0)

要考虑的几件事:

数据绑定与a帧读取id之间存在延迟。在数据绑定发生之前,A-Frame会尝试从ID读取。另一个选择是ID没有绑定。

尝试以下操作:

<a-marker
  id="placeholder_id"
  [attr.id]="my_id"
</a-marker>

您可能只需要使用attr.id进行绑定,但是如果id是标记的必需属性,则它必须在运行时位于DOM中。因此,在attr.id数据绑定之后将占位符放到那里,然后替换它。然后,占位符ID将被覆盖。