2016-05-19 2 views
0

Угловое 2 Версия: rc.1Угловые 2 привязки данных к не-вход

Я возвращаю список имен и мест в таблице, используя * ngFor и Я хочу, чтобы связать эти данные в ячейку, я нажимаю на переменную в моем компоненте.

component.html

<tr *ngFor="let result of Results$"> 
    <td #foo (click)="passValue(foo)"> 
    {{result?.name}} 
    </td> 
    <td> 
    {{result?.place}} 
    </td> 
</tr> 

component.ts

passValue(foo) { 
    this.value = foo; 
    console.log(foo); 
} 

В консоли я получаю следующее, когда я нажимаю на ячейки с "Джон" в качестве значения:

<td _ngcontent-pof-13=""> 
    John 
</td> 

В идеале консоль будет просто записывать «Джон» вместо всего элемента td.

Возможно, существует совершенно другой и лучший способ сделать это.

Любые идеи?

ответ

1
<tr *ngFor="let result of Results$"> 
    <td #foo (click)="passValue(foo)"> 

#foo вот template reference variable - ссылка на сам элемент DOM. result является ссылкой на данные вы связывания - в этом случае, объект с именем поля со значением «Джон»:

Итак, замените

<td #foo (click)="passValue(foo)"> // prints the td element 

по:

<td #foo (click)="passValue(result?.name)"> // prints "John" 
+1

'result' - это весь объект; не хотите ли вы передать 'result.name', если вы хотите, чтобы консоль печатала« John »в' passValue'? –

+0

Да, Metro Smurf, это то, что я закончил, и это сработало –

+1

@MetroSmurf хороший глаз, спасибо, что указали это. ответ обновлен. – drewmoore

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