2017-03-06 102 views
0

當我在我的詳細信息頁面中運行下面的代碼時,我得到的屬性'listName'在類型'{}'上不存在。這似乎有些微不足道,但我花了整個下午都無法理解這裏出了什麼問題。屬性'listName'在類型'{}'上不存在

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); 
    }) 
    } 
} 

當我運行console.log(myListItems)時,我得到以下數據。

{ 
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 } 

然而,當我運行

console.log(myListItems.listName); 

我得到

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

即使屬性存在於對象myListNames

我相信我缺少一些小事這裏。但我花了整個下午,不知道答案。

非常感謝您的幫助!

回答

1

這是一個TypeScript編譯器錯誤,您應該將listDetailsService.load函數的返回類型更改爲any或您定義的與您的列表對象匹配的接口。

export class ListDetailsService { 

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

} 
+0

謝謝你,工作!我根本沒有考慮打字稿。 –

相關問題