简体   繁体   English

属性“ pname”在类型“ {}”上不存在

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

I am working on an ionic app i am using firebase connectivity for it. 我正在使用Ionic应用程序为其开发Firebase连接。 I got my json from firebase but it giving me error in iterating it. 我从firebase获得了json,但是在迭代时却给了我错误。 my provider.ts is as follow 我的provider.ts如下

export class MyProvider {
   masterdata : Array<any>;

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

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

i want to pass it to diff pages my home.ts is 我想将其传递给我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];
        }
    }

    });

  }
}

My json is 我的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"
    }, ]
}

it giving me error as following 它给我以下错误

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

This should work result [i]['pname'] . 这应该工作result [i]['pname']

Next try 下次尝试

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

Normal JSON looks like: 普通的JSON看起来像:

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

This below condition you can change with Rxjs map operator. 您可以使用Rxjs映射运算符更改此条件。 Check the response you are getting in console and update the logic accordingly. 检查您在控制台中得到的响应,并相应地更新逻辑。 But make sure you have imported RxJS library. 但是,请确保已导入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