angular2 données de la carte comme type d'objet spécifique
J'ai créé un très simple application basée sur le Angular2 tutoriel.
Pour commencer, j'ai un très simple "Livre" modèle:
/**
* book model
*/
export class Book {
public data;
/**
* constructor
* @param id
* @param title
* @param pages
*/
constructor(
public id,
public title:string,
public pages:Array
){
alert('it works'); //just a check
}
}
Dans mon service, je reçois un livre comme celui-ci:
return this._http.get('getBook/1')
.map(function(res){
return <Book> res.json();
})
Mon idée était que ce serait d'obtenir la résultante de données JSON et "carte" à un Livre objet.
Cependant, elle retourne un objet de type "Objet".
Je pourrais créer un nouvel objet de Carnet de moi-même et de passer les paramètres dans le constructeur, comme ceci:
return new Book(res.id, res.title, res.pages);
Est-ce la meilleure façon de le faire? Ai-je raté quelque chose?
OriginalL'auteur Kris | 2016-04-28
Vous devez vous connecter pour publier un commentaire.
Oui, le coulage d'un objet à un type de fichier d'enregistrement n'est pas de créer une instance de ce type. C'est juste une installation de la Machine pour vérifier le type.
Si vous voulez en fait une instance de
Book
vous avez besoin d'utiliser quelque chose comme ça:Pour répondre à votre question. En fait, si vous avez seulement les champs dans votre type (avec une interface par exemple), le casting est assez. D'ailleurs si vous avez des méthodes que vous souhaitez utiliser par la suite, il est nécessaire de créer implicitement une instance de la
Book
type (voir ci-dessus) au lieu de la coulée. Sinon vous ne serez pas en mesure de les utiliser (ils seront pas défini sur votre objet)...Voir cette question pour plus de détails:
OriginalL'auteur Thierry Templier
Je pense que vous devriez déclarer une interface
Book
au lieu de la classebook
:À votre service:
OriginalL'auteur dieuhd
Bonne pratique consiste à utiliser des données issues d'OBTENIR réponse à l'aide de
(concernant Angulaire de la documentation https://angular.io/guide/http)
Et puis:
//importations
//en paramètre du constructeur de la liste
//méthode de service
OriginalL'auteur Przemek Struciński