Ich stoße auf ein seltsames Problem mit meiner benutzerdefinierten Klasse in angular2 nach dem Passieren durch eine Observable-Kette.Klasse fehlt Methoden nach bestanden in Observable Kette
ich den Fehler immer erhalten:
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)
Hier ist meine Codierung:
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);
}
}
I habe versucht, die 0 zu kommentierenund switchMap
Aussage aber ohne Erfolg.
An einem anderen Punkt in meiner Codierung kann die filter.mapToParams-Methode ohne Probleme aufgerufen werden. Es scheint mir, als würde die Observable-Kette alle Methoden von meinem Objekt entfernen.
Hier ist meine Winkel config:
- @ Winkel/cli:
1.0.0.-beta.32.3
- @ Winkel/common:
^2.4.0
- @ Winkel/Compiler
^2.4.0
- @ Winkel/Kern
^2.4.0
- rxjs:
^5.1.0
Kann mir jemand dabei helfen?
Was ist die genaue Fehlermeldung? –
Bitte siehe oben. Habe einige weitere Fehleranweisungen hinzugefügt. – XcodeJunkie
Wie sieht der Code aus, wo Sie einen Wert mit '_filterStream' ausgeben? (auch 'neues Thema()' sollte 'neues Thema sein ()' mit Großbuchstaben 'S') –