使用Angular 4从外部javascript创建对象

使用Angular 4从外部javascript创建对象,javascript,angular,Javascript,Angular,因此,我有一个来自外部js文件的名为AppController的类。 顺便说一下,我正在使用Angular.cli 因此,我在脚本部分的.angular-cli.json上导入了这个脚本 "scripts": [ "./assets/blockly/demos/blockfactory/app_controller.js" ] 然后在我的组件上声明了一个变量 declare var apc:any 现在我尝试使用该类创建一个对象 blocklyFactory = new apc.AppC

因此,我有一个来自外部js文件的名为AppController的类。 顺便说一下,我正在使用Angular.cli 因此,我在脚本部分的.angular-cli.json上导入了这个脚本

 "scripts": [
"./assets/blockly/demos/blockfactory/app_controller.js"
]
然后在我的组件上声明了一个变量

declare var apc:any
现在我尝试使用该类创建一个对象

 blocklyFactory = new apc.AppController();
但我得到了一个错误,说AppController是未定义的

这是完整的组件

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


declare var Blockly: any;
declare var blocklyFactory;
declare var apc: any;



@Component({
  selector: 'app-cmpbuilder',
  templateUrl: './cmpbuilder.component.html',
  styleUrls: ['./cmpbuilder.component.css']
})
export class CmpbuilderComponent implements OnInit {
  workspacePlayground: any;

  public toolbox: string =
  `<xml xmlns="http://www.w3.org/1999/xhtml" id="blockfactory_toolbox"         class="toolbox">
  <category name="Component Containers">
      <block type="component_container"></block>
      <block type="settings_container"></block>
    </category>
<category name="Basic Components">
  <block type="field_static"></block>
  <block type="field_input"></block>
  <block type="field_number"></block>
  <block type="field_angle"></block>
  <block type="field_dropdown"></block>
  <block type="field_checkbox"></block>
  <block type="field_colour"></block>
  <block type="colour_hue"><mutation colour="20"></mutation><field name="HUE">20</field></block>
  <block type="field_variable"></block>
  <block type="field_image"></block>
</category>
<category colour="280" name="Component Settings">
    <block type="behaviour_settings"></block>
</category>
</xml>
`;

  constructor() { }
  ngOnInit() {

      blocklyFactory = new apc.AppController();
      blocklyFactory.init();
      window.addEventListener('beforeunload',    blocklyFactory.confirmLeavePage);
      window.addEventListener('load', this.ngOnInit);
    this.createBlocks();

  }

  createBlocks() {
    this.workspacePlayground = Blockly.inject('blocklyDiv',
                {toolbox: this.toolbox});


    return this.workspacePlayground;
  }

}
从'@angular/core'导入{Component,OnInit};
分块声明var:任何;
在工厂申报var;
声明var apc:任何;
@组成部分({
选择器:“应用程序cmpbuilder”,
templateUrl:“./cmpbuilder.component.html”,
样式URL:['./cmpbuilder.component.css']
})
导出类CmpbuilderComponent实现OnInit{
工作空间操场:任何;
公共工具箱:字符串=
`
20
`;
构造函数(){}
恩戈尼尼特(){
blocklyFactory=new apc.AppController();
blocklyFactory.init();
window.addEventListener('beforeunload',blocklyFactory.confirmLeavePage);
window.addEventListener('load',this.ngonit);
这个.createBlocks();
}
createBlocks(){
this.workspaceplaydry=Blockly.inject('blocklyDiv',
{toolbox:this.toolbox});
返回此.workspacephoody;
}
}