我正在玩https://github.com/Reactive-Extensions/RxJS尝试使用Typescript和Angular 2来运行他们的示例.当我编译代码时,它抱怨"类型'上不存在"属性'采样'可观察到的<{}>'".我无法弄清楚为什么没有采摘.是否为rxjs 5删除了它?
使用:
角度2.0.0-beta.0 rxjs 5.0.0-beta.0
码:
import {Component} from 'angular2/core'; import {FORM_DIRECTIVES} from 'angular2/common'; import {Http} from 'angular2/http'; import {Observable} from 'rxjs/Observable'; import {Title} from '../providers/title'; @Component({ selector: 'home', directives: [...FORM_DIRECTIVES], providers: [Title], pipes: [], styles: [require('./home.css')], template: require('./home.html') }) export class Home { wikisearch: any = {}; // TypeScript public modifiers constructor(public title: Title, public http: Http) { var input = document.getElementById('wikisearch'); /* Only get the value from each key up */ var keyups = Observable.fromEvent(input, 'keyup') .pluck('target', 'value') .filter((text) => text.length > 2); } }
luisgabriel.. 5
Angular 2使用RxJS 5(https://github.com/ReactiveX/RxJS),这是对当前版本(https://github.com/Reactive-Extensions/RxJS)的完全重写.RxJS 5仍处于测试阶段.RxJS 4中的某些运算符尚未在RxJS 5中提供pluck
.情况就是如此.我建议您查看RxJS 5文档以及迁移指南,因为这两个版本之间存在一些API差异.
对于此特定示例,您可以使用以下方法轻松替换pluck
运算符map
:
var keyups = Observable.fromEvent(input, 'keyup') .map((target) => target.value) .filter((text) => text.length > 2);
更新: pluck
是现在可以在RxJS 5自版本5.0.0-beta.1.
Angular 2使用RxJS 5(https://github.com/ReactiveX/RxJS),这是对当前版本(https://github.com/Reactive-Extensions/RxJS)的完全重写.RxJS 5仍处于测试阶段.RxJS 4中的某些运算符尚未在RxJS 5中提供pluck
.情况就是如此.我建议您查看RxJS 5文档以及迁移指南,因为这两个版本之间存在一些API差异.
对于此特定示例,您可以使用以下方法轻松替换pluck
运算符map
:
var keyups = Observable.fromEvent(input, 'keyup') .map((target) => target.value) .filter((text) => text.length > 2);
更新: pluck
是现在可以在RxJS 5自版本5.0.0-beta.1.