2016-12-01 2 views
1

Ich mache die Tour of Heroes Tutorial auf eckigen, aber ich bin nicht fest, ich habe nur eine Frage.Wie hero.service.ts create() fügt die ID-Nummer zum Array (Tour of Heroes)

Wie fügt die create() - Funktion in herd.service.ts die ID-Nummer zum JSON-Array hinzu Ich kann nicht finden, wo das gesetzt ist und die Sache scheint zu wissen, wie man die Listen-ID-Nummer selbst nummeriert nach einem löschen und hinzufügen!?!

create(name: string): Promise<Hero> { 
    return this.http 
     .post(this.heroesUrl, JSON.stringify({name: name}), {headers: this.headers}) 
     .toPromise() 
     .then(res => res.json().data) 
     .catch(this.handleError) 
    } 

Nur ein wenig verwirrt und dies würde mein Verständnis dieser Funktion ein wenig besser helfen.

Danke, Bryan

Antwort

1

Dies ist die Höflichkeit der InMemoryDataService Klasse ist, dass die Tour of Heroes-Anwendung für die Speicherung von Helden Einheiten verwendet. Die Quelle für den gesamten Service ist hier verfügbar:

https://github.com/angular/in-memory-web-api

Wenn Sie die post Methode überprüfen here, werden Sie den folgenden Codeblock siehe:

if (!item.id) { 
     item.id = id || this.genId(collection); 
} 

Wo genId(...) ist:

protected genId(collection: any): any { 
    // assumes numeric ids 
    let maxId = 0; 
    collection.reduce((prev: any, item: any) => { 
     maxId = Math.max(maxId, typeof item.id === 'number' ? item.id : maxId); 
    }, null); 
    return maxId + 1; 
    } 

Im Wesentlichen erstellt es einen neuen numerischen Wert, der ein Inkrement der vorherigen ist sly bekannt größten ID-Wert.

+0

Wow danke viel Mann Ich verbrachte viel zu viel Zeit versuchen, es herauszufinden, dann sollte ich haben. Ich wusste, dass es nicht in dem Code war, den ich schrieb. Dies ist ein gutes kleines Stück Code für die zukünftige Verwendung. –

+0

Ich bin froh, dass ich helfen konnte. Vergessen Sie nicht: Sie können diese Antwort akzeptieren, wenn es die richtige Lösung war. Lesen Sie mehr über Upvoting/Akzeptieren von Antworten hier: http://StackOverflow.com/Tour –

+0

Nochmals vielen Dank @Andras –

Verwandte Themen