我有以下内容:
import {
OnInit, Component, ChangeDetectionStrategy, ViewChild, ElementRef,
AfterViewInit
} from 'angular2/core'
import {Observable} from 'rxjs/Observable';
..
export class NameCmp implements AfterViewInit{
....
@ViewChild('card')
card: ElementRef;
mouseMoves$: Observable<MouseEvent>;
ngAfterViewInit(): void {
this.mouseMoves$ = Observable.fromEvent(this.card.nativeElement, 'mousemove');
this.mouseMoves$.subscribe( event => console.log('logging mousemove'));
console.log('after view init')
}
Run Code Online (Sandbox Code Playgroud)
...
<md-card #card>
<md-card-content>
<md-input
required
placeholder = "Title"
[ngFormControl] = "titleCtrl"></md-input>
</md-card-content>
</md-card>
Run Code Online (Sandbox Code Playgroud)
但是,虽然console.log('after view init')打印到控制台,但console.log('logging mousemove'));声明却没有.
谢谢
你的代码很好,你只需要导入 fromEvent
import "rxjs/add/observable/fromEvent";
Run Code Online (Sandbox Code Playgroud)
或Observable从中导入Rx
import {Observable} from 'rxjs/Rx';
Run Code Online (Sandbox Code Playgroud)
检查这个插头
更新
以获取引用组件的nativeElement的引用.例如,获取nativeElement md-card,你需要将对象传递{read:ElementRef}给ViewChild()
@ViewChild('card', {read: ElementRef})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1056 次 |
| 最近记录: |