在 angular 中调用一个函数,我将其作为参数
Call a function in angular which i get as a parameter
我想从字符串调用函数。
也就是说,我得到一个字符串作为函数名,但我想调用并执行该函数。
我尝试了下面的代码,但它没有调用该方法。
linkAction(attr,url){
if(attr == 'click'){
debugger
let eventName = Object.keys(url)[0];
this[eventName];
}else{
window.open(url, "_blank");
}
}
这段代码没有调用方法
这样试试:
.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");
}
我想从字符串调用函数。
也就是说,我得到一个字符串作为函数名,但我想调用并执行该函数。
我尝试了下面的代码,但它没有调用该方法。
linkAction(attr,url){
if(attr == 'click'){
debugger
let eventName = Object.keys(url)[0];
this[eventName];
}else{
window.open(url, "_blank");
}
}
这段代码没有调用方法
这样试试:
.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");
}