2017-02-16 12 views
0

Я составляю компонент контекстного меню в Angular 2, где каждый пункт меню вызывает его собственную функцию, которая определяется моделью. Однако я не знаю, как внедрять функции в шаблон. Пример того, что у меня есть, приведен ниже. Моя конкретная проблема в этой строке:Назначение функций обработчикам событий в * ngFor

<li *ngFor="let item of items" (click)="{{item.click}}">{{item.name}}</li> 

При добавлении обработчика onclick. Как я могу это сделать?

import {Component, ViewChild, ElementRef} from '@angular/core'; 

@Component({ 
    selector: 'app-context-menu', 
    template: `<ul [hidden]="isHidden" #menu> 
    <li *ngFor="let item of items" (click)="{{item.click}}">{{item.name}}</li> 
    </ul>` 
}) 
export class ContextMenuComponent { 

    @ViewChild('menu') menu: ElementRef; 
    private items: Object[]; 
    private isHidden: boolean = true; 

    constructor() { 
     this.items = [ 
     {name: 'One', click:() => alert('One')}, 
     {name: 'Two', click:() => alert('2')}, 
     {name: 'Three', click:() => alert('3')}, 
     {name: 'Four', click:() => alert('4')} 
     ]; 
    } 

} 
+0

Вы можете попробовать '(нажмите) = "item.click()"' в шаблоне? – AngularChef

+0

Это работает! Если вы сделаете ответ, я могу отметить это как решение. Благодарю. –

+0

Вы получили его. :-) – AngularChef

ответ

3

Синтаксис в шаблоне должен быть:

<li *ngFor="let item of items" (click)="item.click()">{{item.name}}</li> 

 Смежные вопросы

  • Нет связанных вопросов^_^