如何在angular2 cli项目中使用Rxjs和document.querySelector(' button')

时间:2017-07-05 09:51:39

标签: angular

获取错误"点击NaN次"。 下面执行Rxjs代码的正确方法是什么?

import { Component, ViewChild, ElementRef } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/fromEvent';
import 'rxjs/add/operator/scan';
import 'rxjs/add/operator/throttleTime';
export class AppComponent {
    count: number;
    title = 'app';
    @ViewChild('input') button: ElementRef;
    // @ViewChild('input1') button: ElementRef;
    constructor() {
    }

    ngAfterViewInit() {
        Observable.fromEvent(this.button.nativeElement, 'click')
            .throttleTime(1000)
            .scan(count => this.count + 1, 0)
            .subscribe(count => console.log(`Clicked ${count} times`));

    }
}

2 个答案:

答案 0 :(得分:2)

您必须在班级中发起bool: must: term: parentId: 12345 has_child: term: something: value 字段值:

count

答案 1 :(得分:2)

您无需使用this.count

Observable.fromEvent(this.button.nativeElement, 'click')
   .throttleTime(1000)
   .scan(count => count + 1, 0)
   .subscribe(count => console.log(`Clicked ${count} times`));

你在这里传递一个初始值:

   .scan(count => count + 1, 0)
                            ^^^

正如the docs所说:

  

您可以选择将扫描种子值作为附加参数传递。   scan会将此种子值传递给累加器函数   它被调用的时间(来自源Observable的第一次发射)   取代之前缺少的累积器调用结果。