财产' listName'类型' {}'上不存在

时间:2017-03-06 08:45:51

标签: angular ionic-framework ionic2

我得到了属性' listName'类型' {}'上不存在当我在我的详细信息页面中运行以下代码时。这似乎是微不足道的,但我整个下午都无法理解这里出了什么问题。

<a runat="server" id="btn_status_toggle" class="btn btn-success" data-toggle="modal" data-target="#myModal" onclick='<%# "fun("+ Eval("tocht_id") + ")" %>'>Status</a>

当我运行console.log(myListItems)时,我得到以下数据。

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

然而,当我跑

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

即使属性存在于对象myListNames

我确信我在这里遗漏了一些小事。但我花了整整一个下午,不知道答案。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

这是一个TypeScript编译器错误,您可能应该将listDetailsService.load函数的返回类型更改为any或您定义的与列表对象匹配的接口。

export class ListDetailsService {

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

}