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];
}
}
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Nicole Kidman, Michael Keaton ve Val Kilmer'in Batman Olarak Paylaştığı Bu 1 Çekici Özelliğe Bayıldı
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'
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'