Type \'Observables<{}>\' est pas assignable à type angulaire 2
Observable est incapable de assigend, mon paquet.fichier json détient
"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"
Problème se produit alors que mon terminal lancer la compilation il me montre un errormessage
message:
'\u001b[31mresources/assets/production/services/utilisateur.service.ts(25,5): \u001b[39merror TS2322: Type \'Observables<{}>\' est pas cessible de type \'Observables\'.\Type n \'{}\' est pas cessible de type \'Utilisateur[]\'.\n Bien \longueur\' est absente du type \'{}\'.' }
dans mon composant de service.loggedUser$ est incapable de initialisée par de nouveaux Observables à l'intérieur du constructeur et ça casse tout le truc.
C'est mon composant de service
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)
);
}
}
dans mon interface j'ai
export interface User {
id?: number,
name?: string,
email?:string,
email2?: string,
password?: string,
mobile?: string,
profilePicture?:string,
userTimeZone?: string
}
si je place un type dans le constructeur comme
this.loggedUser$ = new Observable<User[]>(observer => this.loggedUserObserver = observer).share();
puis il me montre une autre erreur sur l'application de la composante, l'erreur ne vient pas dans le terminal de sa venue sur la console et qu'il est
EXCEPTION: TypeError: _ce.loggedUserObserver est pas défini
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();
}
}
j'ai essayé avec cela, mais il me conduire à une nouvelle erreur, dans mon application composant que j'ai [code]cette exportation de la classe AppComponent{ loggedUser: Observables<{}>; loggedUserInfo:l'Utilisateur; constructeur (privé _userService: UserService){ } ngOnInit(){ this.loggedUser = ce._userService.loggedUser$; ce._userService.getLoggedUser(); } }[/code] et maintenant il me dit que loggedUserObserver n'est pas défini
merci de regarder ma mise à jour de question, votre solution est l'erreur à partir du terminal, mais déclenche une exception sur la console.
OriginalL'auteur MD ABDULLAH AL KAFI | 2016-05-01
Vous devez vous connecter pour publier un commentaire.
Beaucoup cherché et commentaires de #majodi a aidé aussi.
Dans le service.ts j'ai initialisé ma variable comme ceci
et dans le constructeur du service
et dans l'application.composante.fichier ts, j'ai appelé mon observables de cette façon
et ces a résolu le problème.
OriginalL'auteur MD ABDULLAH AL KAFI