2016-12-10 1 views
0

Je travaille sur le tutoriel Angular2 Tour of Heroes et j'essaie d'apprendre à travailler avec les services. J'ai réussi à faire fonctionner le tutoriel de base, mais lorsque je tente d'obtenir un peu plus de complexité, mon application se casse et je ne suis pas sûr de ce que je fais de mal.Angular2 Tour of Heroes - Propriété Hero.ts et objets imbriqués

Le modèle de base qui fonctionne correctement consiste en un objet mock-heroes avec un fichier hero.ts qui spécifie le type de chaque ligne.

Voici le Tour of Heroes tutoriel, je me réfère à: https://angular.io/docs/ts/latest/tutorial/toh-pt4.html

fichier hero.ts:

export class Hero { 
    id: number; 
    firstName: string; 
    lastName: string; 
    street: string; 
    suite: string; 
    city: string; 
    state: string; 
    zipcode: string; 
} 

fichier maquette hero.ts:

import { Hero } from './hero'; 

export const HEROES: Hero[] = 
[ 
    { 
     "id": 101, 
     "firstName": "John", 
     "lastName": "Doe", 
     "street": "111 Main Street", 
     "suite": "Apt. 111", 
     "city": "Anytown", 
     "state": "US", 
     "zipcode": "55555-0000" 
    } 
] 

Si je veux pour ajouter un objet imbriqué, tel que les comptes, j'obtiens l'erreur:

Object literal may only specify known properties, and 'accounts' does not exist in type 'Hero'.

fichier hero.ts:

export class Hero { 
    id: number; 
    firstName: string; 
    lastName: string; 
    street: string; 
    suite: string; 
    city: string; 
    state: string; 
    zipcode: string; 
    accounts: ????; 
    accountNum: string; 
    accountName: string; 
    type: string; 
    availBalance: number 
} 

fichier maquette hero.ts:

import { Hero } from './hero'; 

export const HEROES: Hero[] = 
[ 
    { 
     "id": 101, 
     "firstName": "John", 
     "lastName": "Doe", 
     "street": "111 Main Street", 
     "suite": "Apt. 111", 
     "city": "Anytown", 
     "state": "US", 
     "zipcode": "55555-0000", 
     "accounts": [ 
      { 
       accountNum: "", 
       accountName: "Personal Checking", 
       type: "checking", 
       availBalance: 1000.00 
      } 
     ] 
    } 
] 

Alors, je reçois que je dois identifier les "comptes", mais je me manque ce que je classerai " comptes "afin que je puisse imbriquer des objets correctement.

Merci d'avance.

+0

'accounts: Compte []' ou 'accounts: Object []' devrait faire l'affaire, n'est-ce pas? – soywod

+0

J'ai essayé les deux de différentes façons, mais cela ne semblait pas fonctionner pour moi. –

Répondre

1
export interface Account { 
    accountNum: string; 
    accountName: string; 
    type: string; 
    availBalance: number; 
} 

export class Hero { 
    id: number; 
    firstName: string; 
    lastName: string; 
    street: string; 
    suite: string; 
    city: string; 
    state: string; 
    zipcode: string; 
    accounts: Array<Account>; 
} 
+0

Génial, c'était tout. Merci JB! –