繁体   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