在我的角度项目中,我已经编码了一个js文件以将一些值返回到ts文件。

var webGlObject = (function() {
  return {
    init: function() {
      alert('webGlObject initialized');
    }
  }
})(webGlObject||{})




import { Component, OnInit } from '@angular/core';
import '../../../lib/jquery-3.2.1.min.js';
import '../../../server/getSummary.js';

declare var webGlObject: any;

@Component({
  selector: 'mop-designer-dashboard',
  templateUrl: 'mop-designer-dashboard.component.html',
  styleUrls: ['mop-designer-dashboard.component.css'],
})

export class MopDesignerDashboardComponent implements OnInit {

  debugger;
  scoreBoardList: any = [];
  breadcrumb: any = [];

  constructor() {

    /* prepare breadcrumb */
    this.breadcrumb = [
      {
        label: 'Mop Designer',
        href: '/#/mop-designer'
      }
    ];

    debugger;

    webGlObject.init();



  }

  ngOnInit() {
    console.log('test');
  }
}


但是声明var webGlObject:any;不创建任何对象
我得到以下错误:

>
ZoneTask.invoke @ zone.js?fad3:339
VM292602:61错误:未捕获(承诺):错误::0:0中的错误是由于:未定义webGlObject
ReferenceError:未定义webGlObject
    在新的MopDesignerDashboardComponent处

最佳答案

这是因为您将其作为类创建并用作对象。
尝试这个:
将以下内容放入js文件:

var webGlObject = function() {
this.init= function() {
  alert('webGlObject initialized');}}


并在ts文件中创建一个实例:

declare var webGlObject: any;
export class YourComponent{
constructor(){
    let wegObj = new webGlObject();
    wegObj.init();
  }
}

09-20 07:06