簡體   English   中英

屬性“ pname”在類型“ {}”上不存在

[英]Property 'pname' does not exist on type '{}'

我正在使用Ionic應用程序為其開發Firebase連接。 我從firebase獲得了json,但是在迭代時卻給了我錯誤。 我的provider.ts如下

export class MyProvider {
   masterdata : Array<any>;

   data : Array<any>;
  constructor(public afd: AngularFireDatabase) {
   }

 getDataByPage() {
 return this.afd.list('/masterdata/0/page/').valueChanges();
 }
}

我想將其傳遞給我home.ts的差異頁面

export class Home {
   home:Array<any>;
   data:any;
  constructor(public navCtrl: NavController, public navParams: NavParams, public popoverCtrl: PopoverController, public modalCtrl: ModalController,public masterdata: MyProvider ) {



    this.masterdata.getDataByPage().subscribe(result => {

    for(let i in result )
    {
        console.log(result[i]);
        if(result[i].pname == "Home")
        {
            this.data = result[i];
        }
    }

    });

  }
}

我的json是

 this.masterdata= {
    page: [{
        "pname": "Home",
        "pagetitle": "Most Recent",
        "list": [{
            img: 'assets/img/01.png',
            isAnimated: false
        }, {
            img: 'assets/img/02.png',
            isAnimated: false
        }, {
            img: 'assets/img/02.png'
        }, {
            img: 'assets/img/03.png'
        }]
    },
    {
        "pname": "Profile",
        "img": "assets/img/user-img.png",
        "name": "Justin Timberlake",
        "email": "Justin Timberlake@yahoo.com"
    }, ]
}

它給我以下錯誤

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

這應該工作result [i]['pname']

下次嘗試

let data = JSON.parse(result);
for(let i in data )
{
   console.log(data [i]);
   if(data [i].pname === "Home")
   {
     this.data = data [i];
   }
 }

普通的JSON看起來像:

page: [{
    pname: "Home",
    pagetitle: "Most Recent",

您可以使用Rxjs映射運算符更改此條件。 檢查您在控制台中得到的響應,並相應地更新邏輯。 但是,請確保已導入RxJS庫。

this.masterdata.getDataByPage().subscribe(result => res.json()).map(result =>{

  console.log(res);
  if(res.pname == "Home")
  {
    this.data = res;
  }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM