17

this tutorial takip ediyorum. Açısal: Farklı bir destekleyici nesne bulunamıyor '[object Object]'

Cannot find a differ supporting object '[object Object]'

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

ilgili hiç

orada önce çünkü hiçbir herhangi bir hata ve emin im: hata alıyorum api.github Im eden kullanıcıların listesini almak için Yolda veri sadece herhangi hata vermek hiç tıklayarak olsun isteği geliyorsa, burada şimdiye kadar

@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]) 

cevap

21

ben size yanıt yükü içinde alınan nesne bir dizi değil düşünüyorum benim kodudur. Belki yinelemek istediğiniz dizi bir öznitelik içerisindedir. Sen

Sen böyle bir şeyi deneyebilirsiniz ... alınan verilerin yapısını kontrol etmelisiniz:

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) 
    ); 
} 

Düzenleme

Github doc takiben (developer.github.com/v3/ arama/# arama-kullanıcılar), tepkinin biçimi şöyledir:

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

Yani kullanıcı listesiniiçine bulunuralan ve bu kullanmalısınız: Ben JSON.parse (sonuç) çalıştırmak istemediğiniz çünkü

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) 
    ); 
} 
+0

Bu hata daha hiç gösterisi yaparak da görüntülenir Kullanıcı, console.log da boş – blackHawk

+0

olduğunu Bu mutluluk ve nasıl çalıştı? – blackHawk

+0

nasıl çalıştı? Yanıtlama yükünün biçimi için şu dokümana bakın: https://developer.github.com/v3/search/#search-users. Bu, yanıt yükündeki kullanıcı dizisine karşılık gelir ... Yanıtı güncelledim –

1

benim kodunda bu hata aldı.

sonucu, bir dizi nesne yerine bir dizgiydi.

yani I got:

"[{},{}]" 

yerine: neden

[{},{}] 

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[]; 
        } 
); 
İlgili konular