Geben Sie \'Beobachtbare<{}>\" ist nicht zuordenbar geben Sie in den Winkel-2
Beobachtbar ist nicht assigend, mein Paket.json-Datei enthält
"angular2": "2.0.0-beta.17",
"systemjs": "0.19.24",
"es6-promise": "^3.0.2",
"es6-shim": "^0.35.0",
"reflect-metadata": "0.1.2",
"rxjs": "5.0.0-beta.6",
"zone.js": "0.6.12"
Problem geschieht, während mein terminal kompilieren zeigt er mir eine Fehlermeldung
Nachricht:
'\u001b[31mresources/assets/Typoskript/Dienstleistungen/Benutzer.service.ts(25,5): \u001b[39merror TS2322: Geben Sie \'Beobachtbare<{}>\" ist nicht übertragbar, geben Sie \'Beobachtbare\'.\n-Typ \'{}\' ist nicht übertragbar, geben Sie \'User[]\'.\n-Eigenschaft \ "Länge\" fehlt in der Art \'{}\'.' }
in meinem service-Komponente diese.loggedUser$ ist nicht initialisiert durch neue Beobachtbare Konstruktor und es bricht die ganze Sache.
Dies ist mein service-Komponente
import {Injectable} from 'angular2/core';
import {Http,Response,Headers} from 'angular2/http';
import {Observable} from 'rxjs/Observable';
import {Observer} from 'rxjs/Observer';
import 'rxjs/add/operator/share';
import 'rxjs/add/operator/map';
import {User} from '../interfaces/interfaces';
export var API_ENDPOINT = 'http://localhost:8080/api';
@Injectable()
export class UserService {
loggedUser$: Observable<User[]>;
private loggedUserObserver: Observer<User[]>;
private loggedUserInfo:{
users: User[]
};
constructor(private _http: Http) {
this.loggedUser$ = new Observable(observer => this.loggedUserObserver = observer).share();
this.loggedUserInfo = { users: [] };
}
getLoggedUser(){
return this._http.get(API_ENDPOINT+'/getLoggedUser')
.map((res:Response)=>res.json())
.subscribe(
data => {
this.loggedUserInfo.users = data;
this.loggedUserObserver.next(this.loggedUserInfo.users);
},
err => console.error(err),
() => console.log(this.loggedUserInfo.users)
);
}
}
in mein interface habe ich
export interface User {
id?: number,
name?: string,
email?:string,
email2?: string,
password?: string,
mobile?: string,
profilePicture?:string,
userTimeZone?: string
}
wenn ich einem Typ in den Konstruktor wie
this.loggedUser$ = new Observable<User[]>(observer => this.loggedUserObserver = observer).share();
dann zeigt es mir einen anderen Fehler auf die app-Komponente, die Fehler kommen nicht in die Klemme kommt, auf der Konsole und es ist
EXCEPTION: TypeError: _diese.loggedUserObserver undefined
import {Component,OnInit,} from 'angular2/core';
import {Router,ROUTER_DIRECTIVES} from 'angular2/router';
import {RouteConfig, RouteData} from 'angular2/router';
import {MyProfileComponent} from './settings/my-profile.component';
import {MyCompaniesComponent} from './company/my-companies.component';
import {MyTasksComponent} from './tasks/my-tasks.component';
import {UserComponent} from './user/user.component';
import {Observable} from 'rxjs/Observable';
import 'rxjs/Rx';
import {UserService} from './services/user.service';
import {User} from './interfaces/interfaces';
@Component({
selector: 'my-app',
//templateUrl: 'appView/front.html',
template:`{{loggedUser.name}}`,
directives:[ROUTER_DIRECTIVES, MyProfileComponent, MyCompaniesComponent,UserComponent],
providers: [UserService],
})
export class AppComponent{
loggedUser: Observable<User[]>;
loggedUserInfo:User;
constructor (private _userService: UserService){
}
ngOnInit(){
this.loggedUser = this._userService.loggedUser$;
this._userService.getLoggedUser();
}
}
- Sollte nicht haben Sie einen Dateityp für Ihre neue Observable, die im Konstruktor? Ich denke, die Fehlermeldung Punkte, die Sie.
- ich habe versucht, mit diesem aber es trieb mich zu einen neuen Fehler, in meinem app-Komponente habe ich [code]das export-Klasse AppComponent{ loggedUser: Beobachten<{}>; loggedUserInfo:User; Konstruktor (private _userService: UserService){ } ngOnInit(){ dieses.loggedUser = diese._userService.loggedUser$; dies._userService.getLoggedUser(); } }[/code] und nun sagt es mir, dass loggedUserObserver ist nicht definiert
- schauen Sie bitte auf meine aktualisierte Frage, Ihre Lösung nimmt den Fehler aus dem terminal, sondern wirft eine exception auf der Konsole.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Suchte eine Menge und Kommentare von #majodi auch geholfen.
In den service.ts habe ich meine variable initialisiert, wie dies
- und service-Konstruktor
und in der app.Komponente.ts-Datei habe ich aufgerufen, meine beobachtbaren diese Weise
und diese das Problem gelöst.