Observableチェーンを通過した後、私はangle2の私のカスタムクラスに奇妙な問題が発生しました。Observableチェーンで渡された後、クラスにメソッドがありません
私はいつものエラーが表示されます。
EXCEPTION: f.mapToParams is not a function
ORIGINAL STACKTRACE:
TypeError: f.mapToParams is not a function
at SafeSubscriber._next (filter.component.ts)
...
Uncaught TypeError: f.mapToParams is not a function
at Safesubscriber._next (filter.component.ts)
ここに私のコードは次のとおりです。
filter.ts:
import { Params } from '@angular/router';
export class Filter {
public text:String = '';
public mapToParams():Params {
let params:Params = {};
// Do some mapping here...
return params;
}
}
filter.component.ts
import { Component, OnInit Output, EventEmitter } from '@angular/core';
import { Router, Params } from '@angular/router';
import { Filter } from './filter';
import { Observable, Subject } from 'rxjs/Rx';
export class FilterComponent implements OnInit {
private _filter:Filter;
private _filterStream = new Subject<Filter>();
ngOnInit() {
this._filter = new Filter();
this._filterStream
.debounceTime(300)
.switchMap((f:Filter) => Observable.of(f))
.subscribe((f:Filter) => {
let params:Params = {};
console.log(f.text); // <-- No problem here
// params = this._map(f); // <-- This would work
params = f.mapToParams(); // <-- Here occurs the error
});
}
private _map(f:Filter):Params {
// Do some mapping here
}
public onInputChanged(searchText:String):void {
this._mergeFilter({
map(f:Filter) {
f.text = searchText;
}
})
}
private _mergeFilter(callback:FilterMergeCallback):void {
let f:Filter = JSON.parse(JSON.stringify(this._filter));
callback.map(f);
this._filterStream.next(f);
}
}
私は0をコメントアウトしようとしましたとswitchMap
というステートメントですが、成功しません。
私のコーディングの別のポイントで、filter.mapToParamsメソッドを問題なく呼び出すことができます。 Observableチェーンが私のオブジェクトからすべてのメソッドを取り除くように思えます。共通/角度@1.0.0.-beta.32.3
- :ここ は私の角度設定された角度@
^2.4.0
- /コンパイラの角度@
^2.4.0
- /コア
^2.4.0
- rxjs:
^5.1.0
誰もが私にこれを助けることができますか?
正確なエラーメッセージは何ですか? –
上記を参照してください。いくつかのエラーステートメントを追加しました。 – XcodeJunkie
'_filterStream'を使用してコードをどのように出力するかは、どのように見えますか? (また '新題()'は '新しい件名()'大文字の 'S')でなければなりません –