2017-03-06 6 views
0

Ich bekomme die Eigenschaft' listName 'existiert nicht auf den Typ' {} ', wenn ich den folgenden Code in meiner Detailseite ausführen. Es scheint etwas Triviales zu sein, aber ich habe den ganzen Nachmittag nicht in der Lage zu verstehen, was hier falsch läuft.Eigenschaft 'listName' existiert nicht für den Typ '{'} '

import { Component } from '@angular/core'; 
import { NavController, NavParams } from 'ionic-angular'; 
import {ListDetailsService} from '../../providers/list-details-service'; 


@Component({ 
    selector: 'page-item-details', 
    templateUrl: 'item-details.html' 
}) 
export class ItemDetailsPage { 
    selectedItem: any; 
    detailsItems : Array<{title: string, note: string, id: string}>; 

    constructor(public navCtrl: NavController, public navParams: NavParams, public listDetailsService : ListDetailsService) { 
    // If we navigated to this page, we will have an item available as a nav param 
    this.selectedItem = navParams.get('item'); 

    this.detailsItems = []; 
    this.listDetailsService.load(this.selectedItem.id).then(myListItems => { 
     console.log(myListItems); 
     console.log(myListItems.listName); 


    }).catch(function(e){ 
     console.log(e); 
    }) 
    } 
} 

Wenn ich console.log (myListItems) ausführen, erhalte ich die folgenden Daten.

{ 
items: 
    [ { _id: 58bbf7fd463667f51d7804f6, 
     votes: '10', 
     item: 'Apple Iphone' }, 
    { _id: 58bbf7fd463667f51d7804f5, 
     votes: '2', 
     item: 'Google Phone' }, 
    { _id: 58bbf7fd463667f51d7804f4, 
     votes: '2', 
     item: 'Samsung Phone' }, 
    { _id: 58bbf7fd463667f51d7804f3, votes: '6', item: 'LG Phone' } ], 
    __v: 0, 
    listName: 'Best Phones', 
    _id: 58bbf7fd463667f51d7804f2 } 

Allerdings, wenn ich laufen

console.log(myListItems.listName); 

I

Property 'listName' does not exist on type '{}'. 

Auch erhalten, obwohl die Eigenschaft im Objekt myListNames vorhanden ist

Ich bin sicher, ich bin etwas fehlt trivial Hier. Aber ich verbringe den ganzen Nachmittag damit, die Antwort nicht zu kennen.

Ihre Hilfe wird sehr geschätzt!

Antwort

1

Dies ist ein TypeScript-Compilerfehler, und Sie sollten wahrscheinlich den Rückgabetyp Ihrer listDetailsService.load-Funktion in any oder eine von Ihnen definierte Schnittstelle ändern, die dem Objekt Ihrer Liste entspricht.

export class ListDetailsService { 

    //... 
    load(): any { 
     //... 
    } 

} 
+0

Vielen Dank, das hat funktioniert! Ich dachte überhaupt nicht an Typoskript. –

Verwandte Themen