Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多次在Angular组件中使用wasm文件(使用imgui)运行javaScript脚本_Javascript_Angular_Webassembly_Emscripten_Imgui - Fatal编程技术网

多次在Angular组件中使用wasm文件(使用imgui)运行javaScript脚本

多次在Angular组件中使用wasm文件(使用imgui)运行javaScript脚本,javascript,angular,webassembly,emscripten,imgui,Javascript,Angular,Webassembly,Emscripten,Imgui,我想在angular component上运行wasm imgui文件,这是菜单选项卡的内容之一。 Wasm直接基于: 组成部分: wasm-app-components.ts import { Component, OnInit } from '@angular/core'; import { get } from 'scriptjs'; @Component({ selector: 'app-wasm-app', templateUrl: './wasm-app.component

我想在angular component上运行wasm imgui文件,这是菜单选项卡的内容之一。 Wasm直接基于:

组成部分:

wasm-app-components.ts

import { Component, OnInit } from '@angular/core';
import { get } from 'scriptjs';

@Component({
  selector: 'app-wasm-app',
  templateUrl: './wasm-app.component.html',
  styleUrls: ['./wasm-app.component.scss']
})

export class WasmAppComponent implements OnInit {

  constructor() {}


  ngOnInit(): void {
    console.log('init');
    get("assets/index.js", () => {
        console.log("index loaded");
    });
    get("assets/runIndex.js", () => {
        console.log("run index loaded");
        
    });


  }
}
wasm-app.component.html

<canvas class="emscripten" id="canvas" ></canvas> 
第二个是由emscriptenjs文件生成的(大约7000行),但老实说,我不想修改它。如果您想查看它的外观,只需生成它(页面顶部的链接)

问题是wasm只在第一个条目上生成。在第二个条目中,我有一个错误:

Uncaught TypeError: Cannot read property 'emscripten_stack_get_end' of undefined
我想以某种方式撤销在nit方法上发生的所有事情。我试着将它包装在container div中,并在onDestroy中删除子对象,但这不起作用

以下是“紧急解决方案”:

但这仍然不是我正在寻找的解决方案。 最后一个最令人满意(但并不完美)的方法是使用href而不是routerLink

Uncaught TypeError: Cannot read property 'emscripten_stack_get_end' of undefined
initWasm(){
    get("assets/index.js", () => {
      console.log("index loaded");
    });
    get("assets/runIndex.js", () => {
      console.log("run index loaded");
    });
  }

  delay(ms: number) {
    return new Promise( resolve => setTimeout(resolve, ms) );
  }

  ngOnInit(): void {
    (async () => { 
      await this.delay(5000);
      this.initWasm();
  })();