简体   繁体   English

如何从外部javascript文件调用用Angular Component编写的函数?

[英]How to call function written in Angular Component from external javascript file?

I have written an external JavaScript file for creating dynamic UI on a page.我编写了一个用于在页面上创建动态 UI 的外部 JavaScript 文件。 I need to call a function written in component class on click of dynamically created button.我需要在单击动态创建的按钮时调用在组件类中编写的函数。 Technically I am trying to call a function from plain JavaScript file.从技术上讲,我试图从纯 JavaScript 文件调用函数。 Any help will be appreciated.任何帮助将不胜感激。

Below is an example:下面是一个例子:

Suppose my Home.Component.ts file has a function 'showToast()'假设我的 Home.Component.ts 文件有一个函数“showToast()”

export class HomeComponent {

    public showToast() {

        this.messageService.showToast();
    }
} //end of 'HomeComponent'

and my custom.js file is having a code for finding click event as below:我的 custom.js 文件有一个用于查找点击事件的代码,如下所示:

btn.onClick() {

     //I want to call showToast() function from here.
}
  • Create a CND package创建一个 CND 包
  • Insert a package as a script file in index.html在 index.html 中插入一个包作为脚本文件
  • Use the service file使用服务文件

Example code:示例代码:

import { Injectable } from '@angular/core';
declare var CryptoJS: any;
export class CryptService {

  constructor() { }

  public decrypt(encryptedString, random) {
    return new Promise((result, reject) => {
      const bytes = CryptoJS.AES.decrypt(encryptedString, random);
      result(bytes.toString(CryptoJS.enc.Utf8));
    });
  }

  public encrypt (payload, user_id) {
    return CryptoJS.AES.encrypt(payload, user_id).toString();
  }

}

module.ts模块.ts

this.load('https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/aes.js');

  load(scriptUrl: string) {
    if (isPlatformBrowser(this.platformId)) {
      let node: any = document.createElement('script');
      node.src = scriptUrl;
      node.type = 'text/javascript';
      node.async = true;
      node.charset = 'utf-8';
      document.getElementsByTagName('head')[0].appendChild(node);
    }
  }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在Angular组件的Assets文件夹下的单独文件中调用外部Javascript函数? - How to call external Javascript function which is in separate file under assets folder in Angular component? Angular 2如何从组件的外部脚本中调用jQuery函数 - Angular 2 how to call a jQuery function from a external script from a component 如何从angular 2组件访问外部javascript文件 - How to access external javascript file from angular 2 component 如何在角度5中调用外部javascript函数? - How to call external javascript function in angular 5? 从Angular 2组件调用纯javascript函数 - Call pure javascript function from Angular 2 component 从外部 HTML 文件调用 javascript function - Call javascript function from an external HTML file 使用Applescript从外部文件调用Javascript函数 - Call Javascript function from external file with Applescript 我如何从另一个外部javascript文件中的外部javascript文件调用函数? - How i can call a function from external javascript file in another external javascript file? 在ASP中,如何从用VB编写的另一个.asp文件中的一个.asp文件中调用JavaScript函数? - In ASP how do I call a JavaScript function in one .asp file from another .asp file written in VB? Javascript如何调用外部文件的功能? - how Javascript call to a function of a external file?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM