Açısal 8 ng
Nov 24 2020
League of Legends Champion API cadı, şampiyonlardan aldığımı geri veriyor. Hizmet.
.ts Güncellendi
@Component({ selector: 'app-champions', templateUrl: './champions.component.html', styleUrls: ['./champions.component.css'] })
export class ChampionsComponent implements OnInit {
public champions;
public arrayChampions;
constructor(private championsService:ChampionsService) { }
ngOnInit(): void {
this.getAllChampions(); }
getAllChampions(){
this.championsService.getChampions().subscribe(
data => { this.champions = data,
this.arrayChampions = Object.entries(this.champions.data).map(([k,v]) => ({ [k]:v })),
this.ArrayIterator();
},
err => {console.error(err)},
() => console.log("Champions cargados")
);
}
ArrayIterator() {
let IteratableArray = Array();
for (let item of Object.keys(this.arrayChampions[0])) {
var eventItem = Object.values(this.arrayChampions[0]);
IteratableArray.push(eventItem);
}
this.arrayChampions = IteratableArray[0];
}
}
şampiyonlar. hizmet
import { Injectable } from '@angular/core'; import { HttpClient, HttpHeaders} from '@angular/common/http';
const httpOptions = {
headers: new HttpHeaders({'Content-Type': 'application/json'})
}
@Injectable({ providedIn: 'root' }) export class ChampionsService {
constructor(private http: HttpClient) { }
getChampions(){
return this.http.get('http://ddragon.leagueoflegends.com/cdn/10.23.1/data/es_ES/champion.json');
}
HTML:
<div *ngFor="let arrayChampion of arrayChampions>
<a class="text-decoration-none">{{arrayChampion.id}}</a>
</div>
Gerçek şu ki, HTML'de hiçbir şey görünmüyor. Sorunun ne olduğunu gerçekten iyi bilmiyorum.
Yanıtlar
1 SelakaNanayakkara Nov 24 2020 at 13:57
Dizinin ilk elemanı, objectbu nedenle onu şablonda doğrudan yineleyemezsin. Bu nedenle, şablon boyunca yineleme yapabilmek için onu uygun şekilde dönüştürmeniz gerekir. Bunun için aşağıdakileri yapabilirsiniz:
Buradan, çalışma stackblitz örneğini buraya ekliyorum
Örnek HTML:
<div *ngFor="let arrayChampion of arrayChampions>
<a class="text-decoration-none">{{arrayChampion.id}}</a>
</div>
Örnek component.ts:
import { Component, OnInit } from "@angular/core";
@Component({
selector: "my-app",
templateUrl: "./app.component.html",
styleUrls: ["./app.component.css"]
})
export class AppComponent implements OnInit {
name = "Angular 4";
arrayChampions: any;
data = [
{
Aatrox: {
id: "Aatrox",
key: "266"
},
Ahri: {
id: "Ahri",
key: "103"
},
Akali: {
id: "Akali",
key: "84"
}
}
];
constructor() {}
ngOnInit() {
this.ArrayIterator();
}
ArrayIterator() {
let IteratableArray = Array();
for (let item of Object.keys(this.data[0])) {
var eventItem = Object.values(this.data[0]);
IteratableArray.push(eventItem);
}
this.arrayChampions = IteratableArray[0];
}
}
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Kevin Jonas'ın Kızı Alena, Doğum Günü Fotoğrafında Büyümüş Görünüyor: '9 Yaşında Gerçek Hissetmiyor'
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'