2016-07-13 4 views
0

Я занимаюсь разработкой небольшое приложение в Angular2, и я пытаюсь сделать, чтобы сделать следующий код работы:Show/Hide DOM элемент

<tr *ngFor="let person of personArray" 
     (mouseenter)="remove.hidden=true" (mouseleave)="remove.hidden=false"> 
    <td> 
     <span #remove>...</span> 
    </td> 
    </tr> 
  1. почему-то ничего не происходит. В чем проблема?
  2. Я назвал элемент span «remove», но * ngFor создает многократные интервалы с тем же именем. Правильно ли это?

* Я стараюсь избегать любого дополнительного кода внутри класса.

+2

Ваш код сделал работу для меня: http://plnkr.co/edit/44zHGlI9DhQSbvrxfDnK?p=preview О 2: Я не уверен, следует ли использовать ссылки в '* ngFor', но код действительно работал ... – acdcjunior

ответ

0

Я думаю, проблема заключается в том, что как только вы входите в строку таблицы с мышью, диапазон правильно расходится. Сразу является MouseLeave называется, так как его скрытый ..

Вот рабочий пример: http://plnkr.co/edit/McjjDMdLIkiFGUkZ9lNu?p=preview

@Component({ 
    selector: 'my-app', 
    template: ` 
    <table> 
     <tr *ngFor="let person of personArray" 
      (mouseenter)="remove.hidden=true" (mouseleave)="remove.hidden=false"> 
      <td> 
      <span #remove>{{ person }}</span> 
      </td> 
     </tr> 
    </table> 
    ` 
}) 
export class AppComponent { 
    personArray: string[]; 

    constructor() { 

     this.personArray = ["Bob", "Alice", "Seb"]; 
    } 

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