Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

558
Views
Angular: no se puede encontrar un objeto de soporte diferente '[objeto Objeto]'

Estoy siguiendo este tutorial . En el camino para obtener la lista de usuarios de api.github, obtengo un error:

No se puede encontrar un objeto de soporte diferente '[objeto Objeto]'

Creo que está relacionado con

 <ul> <li *ngFor = "#user of users"> {{user | json}} </li> </ul>

En mi código porque antes no había ningún error, y no estoy seguro de si los datos provienen de la solicitud de obtención, solo hacer clic no dio ningún error, aquí está mi código hasta ahora

 @Component({ selector: 'router', pipes : [], template: ` <div> <form [ngFormModel] = "searchform"> <input type = 'text' [ngFormControl]= 'input1'/> </form> <button (click) = "getusers()">Submit</button> </div> <div> <ul> <li *ngFor = "#user of users"> {{user | json}} </li> </ul> </div> <router-outlet></router-outlet> `, directives: [FORM_DIRECTIVES] }) export class router { searchform: ControlGroup; users: Array<Object>[]; input1: AbstractControl; constructor(public http: Http, fb: FormBuilder) { this.searchform = fb.group({ 'input1': [''] }) this.input1 = this.searchform.controls['input1'] } getusers() { this.http.get(`https://api.github.com/ search/users?q=${this.input1.value}`) .map(response => response.json()) .subscribe( data => this.users = data, error => console.log(error) ) } } bootstrap(router, [HTTP_PROVIDERS])
over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Creo que el objeto que recibió en su carga útil de respuesta no es una matriz. Tal vez la matriz que desea iterar esté contenida en un atributo. Debería comprobar la estructura de los datos recibidos...

Podrías intentar algo así:

 getusers() { this.http.get(`https://api.github.com/search/users?q=${this.input1.value}`) .map(response => response.json().items) // <------ .subscribe( data => this.users = data, error => console.log(error) ); }

Editar

Siguiendo el documento de Github (developer.github.com/v3/search/#search-users), el formato de la respuesta es:

 { "total_count": 12, "incomplete_results": false, "items": [ { "login": "mojombo", "id": 1, (...) "type": "User", "score": 105.47857 } ] }

Entonces, la lista de usuarios está contenida en el campo de items y debe usar esto:

 getusers() { this.http.get(`https://api.github.com/search/users?q=${this.input1.value}`) .map(response => response.json().items) // <------ .subscribe( data => this.users = data, error => console.log(error) ); }
over 4 years ago · Santiago Trujillo Report

0

Recibí este error en mi código porque no ejecuté JSON.parse(result) .

Entonces mi resultado fue una cadena en lugar de una matriz de objetos.

es decir, tengo:

 "[{},{}]"

en vez de:

 [{},{}]

 import { Storage } from '@ionic/storage'; ... private static readonly SERVER = 'server'; ... getStorage(): Promise { return this.storage.get(LoginService.SERVER); } ... this.getStorage() .then((value) => { let servers: Server[] = JSON.parse(value) as Server[]; } );
over 4 years ago · Santiago Trujillo Report

0

La falta de corchetes alrededor de la propiedad de entrada puede causar este error. Por ejemplo:

 Component Foo { @Input() bars: BarType[]; }

Correcto:

<app-foo [bars]="smth"></app-foo>

Incorrecto (error de activación):

<app-foo bars="smth"></app-foo>

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!