首页 > 解决方案 > 以我作为参数的角度调用函数

问题描述

我想从字符串中调用一个函数。

那就是我得到一个字符串作为函数名,但我想调用并执行该函数。

我尝试了下面的代码,但它没有调用该方法。

 linkAction(attr,url){
      if(attr == 'click'){
        debugger
        let eventName = Object.keys(url)[0];
        this[eventName];
      }else{
        window.open(url, "_blank");
      }
    }

此代码未调用该方法

标签: angulartypescriptangular6

解决方案


工作演示

试试这样:

.html

<button (click)="linkAction('click', 'test')">Click me </button>
<button (click)="linkAction('url', 'www.google.com')">Click me url </button>

.ts

  linkAction(attr, item) {
    if (attr == "click") {
      this[item]();
    } else {
      if (item !== "" && item !== undefined) {
        if (item.includes("http")) {
          window.open(item, "_blank");
        } else {
          window.open(`https://${item}`, "_blank");
        }
      }
    }
  }

  test() {
    alert("test called");
  }

推荐阅读