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.
Schreibe einen Kommentar