javascript - 无法从 TS 文件访问外部 JS 文件的功能

标签 javascript node.js angular typescript ionic-framework

我在外部 JS 文件中定义了一个函数。我无法在 home.page.ts 文件中使用它。它显示错误为 TypeError:无法读取未定义的属性“functionName”

index.html

<body>
    <app-root></app-root>
    <script src="assets/multiLayerSource.js"></script>
</body>

multiLayerSource.js

var multiLayerSource;

var layersHT = [];

function SetLayerHT(arglayersHT) {
    layersHT = arglayersHT;
}

home.page.ts

import { Component } from '@angular/core';
import { OnInit, Renderer, ViewChild  } from '@angular/core';
declare var multiLayerSource: any;

@Component({
    selector: 'app-home',
    templateUrl: 'home.page.html',
    styleUrls: ['home.page.scss'],
})
export class HomePage implements OnInit {
    layersHTP: any = [];
    constructor() {}

    ngOnInit() {
        this.layersHTP.push( 'a', 'b', 'c', 'd' );
        multiLayerSource.SetLayerHT(this.layersHTP);
    }
}

尝试访问 SetLayerHT() 时显示错误。 错误是:

TypeError: Cannot read property 'SetLayerHT' of undefined.

请帮忙。

最佳答案

将你的 js 文件移动到 asset 文件夹,然后在你的代码中这样做

import 'assets/js/multiLayerSource';

declare var SetLayerHT: any;

ngOnInit() {
 this.layersHTP.push( 'a', 'b', 'c', 'd' );
 SetLayerHT(this.layersHTP);
}

关于javascript - 无法从 TS 文件访问外部 JS 文件的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57866310/

相关文章:

angular - 使用angular6的Http get方法

javascript - JQuery .replaceWith 函数仅提供原始 html

JavaScript 在带有回调的循环中异步

javascript - 为什么悬停和点击并不总是有效?

node.js - Windows上的全局npm安装位置?

javascript - 递归迭代嵌套对象以更改所有出现的键值

javascript - 在 angular2 中使用 HTTP 响应

javascript - JavaScript 文件中的反引号不会在 VSCode 中自动关闭

javascript - 使用 NodeJS 和 EJS 渲染 MySQL 查询

javascript - Chrome 中的 AngularJS CORS 问题 - 请求的资源上不存在 'Access-Control-Allow-Origin' header