Angular 调用一个角函数,我得到它作为参数

Angular 调用一个角函数,我得到它作为参数,angular,typescript,angular6,Angular,Typescript,Angular6,我想从字符串调用函数 也就是说,我得到一个字符串作为函数名,但我想调用并执行该函数 我尝试了下面的代码,但它没有调用该方法 linkAction(attr,url){ if(attr == 'click'){ debugger let eventName = Object.keys(url)[0]; this[eventName]; }else{ window.open(url, "_blank");

我想从字符串调用函数

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

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

 linkAction(attr,url){
      if(attr == 'click'){
        debugger
        let eventName = Object.keys(url)[0];
        this[eventName];
      }else{
        window.open(url, "_blank");
      }
    }
此代码未调用该方法

试着这样做:

.html


显示示例属性和url@AdritaSharma它是一个字符串,因此attr可以说click或link,url可以是www.google.com或abc()之类的函数名。为什么不使用
switch case
bcs呢?您已经在组件中编写了函数。但是有很多函数,所以我不想这样做。我想让那个字符串调用method@ashish你看过演示了吗?你能看看演示吗?第一个按钮。
<button (click)="linkAction('click', 'test')">Click me </button>
<button (click)="linkAction('url', 'www.google.com')">Click me url </button>
  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");
  }