【发布时间】:2016-08-08 23:16:12
【问题描述】:
我正在使用 Angular 2。
当我只有一个元素时,我可以先使用nativeElement,然后再使用Observable。
<div #aaa></div>
@ViewChild('aaa') private aaa: ElementRef;
ngAfterViewInit() {
console.log(Observable.fromEvent(this.aaa.nativeElement), 'mouseenter');
}
但是现在我有一个列表,我不能用同样的方法来做:
<a *ngFor="#user of users" #aaa (mouseenter)="mouseEnter($event, user)">
{{user}}
</a>
@ViewChild('aaa') private aaa: ElementRef;
ngAfterViewInit() {
console.log(Observable.fromEvent(this.aaa.nativeElement), 'mouseenter');
}
它会显示错误:
异常:TypeError:无法读取 null 的属性“nativeElement”
当鼠标移入每个元素时,我希望它使用 Observable 做不同的事情。在这种情况下如何正确使用 Observable?
【问题讨论】:
-
@ViewChildren('aaa') hrefs: QueryList
; -
并在 ngAfterViewInit 中:this.hrefs.toArray().forEach((child) => console.log(Observable.fromEvent(child.nativeElement, 'mouseenter')));
-
@yurzui 感谢您的帮助!
标签: typescript angular rxjs rxjs5