如何在Angular 4中包含外部js文件并从angular到js调用函数

时间:2017-06-29 05:59:18

标签: javascript angular

我们说我有一个名为abc.js的文件,其函数为xyz()。我想在我的Angular 4项目中调用该函数。我该怎么做?

4 个答案:

答案 0 :(得分:73)

请参阅angular-cli.json文件中的脚本。

"scripts": [
    "../path" 
 ];

然后添加typings.d.ts

declare var variableName:any;

将其作为

导入您的文件中
import * as variable from 'variableName';

答案 1 :(得分:21)

为了包含一个全局库,例如来自angular-cli.json的脚本数组中的jquery.js文件:

"scripts": [
  "../node_modules/jquery/dist/jquery.js"
]

在此之后,如果已经启动,则重新启动ng。

答案 2 :(得分:13)

你可以

import * as abc from './abc';
abc.xyz();

import { xyz } from './abc';
xyz()

答案 3 :(得分:0)

index.html 中添加外部js文件。

<script src="./assets/vendors/myjs.js"></script>

这是 myjs.js 文件:

var myExtObject = (function() {

    return {
      func1: function() {
        alert('function 1 called');
      },
      func2: function() {
        alert('function 2 called');
      }
    }

})(myExtObject||{})


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

然后声明它在下面的组件中

demo.component.ts

declare var myExtObject: any;
declare var webGlObject: any;

constructor(){
    webGlObject.init();
}

callFunction1() {
    myExtObject.func1();
}

callFunction2() {
    myExtObject.func2();
}

demo.component.html

<div>
    <p>click below buttons for function call</p>
    <button (click)="callFunction1()">Call Function 1</button>
    <button (click)="callFunction2()">Call Function 2</button>
</div>

对我有用...