动态(点击)功能-Angular2
将动态功能绑定到click事件时遇到了一些麻烦.请看下面:-
I am having a little trouble with binding a dynamic function to a click event. Please see below:-
文件1
<title-bar [actions]='[{title: "Create A New Plan", link: "hello"}]' ></title-bar>
文件2
<div class="actions" *ngIf="actions">
<a *ngFor="let action of actions" class="ui primary button" (click)="[action.link]()">{{action.title}}</a>
</div>
与我绑定(单击)中的action.link时相比,所有代码都运行良好.
All of the code is working perfectly apart from when I am binding the action.link in the (click).
如果我创建以下按钮:-
If I create the following button:-
<button (click)="hello()"></button>
它会按需调用hello()函数.但由于某种原因,我无法使其动态工作.
It calls the hello() function as it should. but for some reason I am not able to get this to work dynamically.
有人对此有一个简单的解决方案吗?
Does anybody have a simple solution to this I may have over looked?
该函数正在调用一个简单的警报,仅用于测试:-
The function is calling a simple alert just for testing:-
public hello() {
alert('test');
}
II试图将click事件更改为以下内容,但并不高兴:-
II have attempted to change the click event to the following but with no joy:-
(click)="action.link"
(click)="[action.link]()"
(click)="this[action.link]()"
我分别遇到以下错误:-
I get the following errors respectively:-
No error, but not function called
inline template:3:2 caused by: ["hello"] is not a function
inline template:3:2 caused by: self.parentView.parentView.context[self.context.$implicit.link] is not a function
在正确方向上进行的任何帮助将不胜感激.
Any help with a push in the right direction will be very much appreciated.
您需要的组件中
In the component you need
get self() { return this; }
和模板中
<a *ngFor="let action of actions" class="ui primary button"
(click)="self[action.link]()">{{action.title}}</a>
使用
<a *ngFor="let action of actions" class="ui primary button"
(click)="this[action.link]()">{{action.title}}</a>