【问题标题】:Trouble with pulling information from data provider/JSON (ionic framework)从数据提供者/JSON(离子框架)中提取信息的问题
【发布时间】:2018-04-19 06:34:22
【问题描述】:

我还是 Angular 和 ionic 的新手,我正在尝试制作一个 pokedex 应用程序。我创建了一个包含“口袋妖怪”数组的 json 文件。截至目前,我正试图从 json 文件中提取信息并显示它,但我没有成功。当我运行应用程序时,它只显示一个带有数字的列表。我不确定我做错了什么。任何人都可以帮忙吗?我将添加数据提供者、json 文件以及 home 组件和模板以供参考。

<ion-header>
  <ion-navbar>
    <ion-title>
      Pokedex
    </ion-title>
  </ion-navbar>
</ion-header>

<ion-content>

  <ion-list>
    <ion-item *ngFor="let pocketMonster of pocketMonsters; let i = index;">
      <ion-label>{{i+1}}</ion-label>
    </ion-item>
   </ion-list>
  

  <!--<div *ngIf="pocketMonsters.length"></div> -->

</ion-content>

import { Component } from '@angular/core';
import { ModalController, NavController } from 'ionic-angular';

import { pokemonDataService } from '../../providers/data/data';

@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})

export class HomePage {

  pocketMonsters = [];
  searchQuery: string = '';

  constructor(public navCtrl: NavController, public dataService: pokemonDataService) {

   
  }

  ionViewDidLoad() {
    
           
    
           this.dataService.getAllPokemon().then((data) => {
    
               data.map((pocketMonster) => {

                   
                   return pocketMonster;
    
               });    
    
               this.pocketMonsters = data;
    
           });
    
       }

  //ngOnInit(){
    //this.dataService.getAllPokemon()
      //.subscribe(data => {
        //this.pokemonList = data;
    //});
  //}

  

}

import { Injectable } from '@angular/core';
import { Http, Response } from '@angular/http';
import 'rxjs/add/operator/map';



@Injectable()
export class pokemonDataService {
 
    data: any;
 
    constructor(public http: Http) {
 
    }

    getAllPokemon() {
      if(this.data){
        return Promise.resolve(this.data);
    }

    return new Promise(resolve => {

        this.http.get('assets/data/pokemon.json').map(res => res.json()).subscribe(data => {
            this.data = data.pocketMonsters;
            resolve(this.data);
        });

    });
      }
 
    
 
}

{
    "pocketMonsters": [

        {
            "pokemonName" : "Bulbasaur",
            "pokedexNumber" : "001",
            "description": "Bulbasaur can be seen napping in bright sunlight. There is a seed on its back. By soaking up the sun's rays, the seed grows progressively larger",
            "pokemonImage" : "<img src='assets/imgs/bulbasaur.png"

        },

        {
            "pokemonName" : "Ivysaur",
            "pokedexNumber" : "002",
            "description" : "",
            "pokemonImage" : "<img src='assets/imgs/ivysaur.png"
        }
    }
 }

【问题讨论】:

    标签: javascript angularjs json typescript ionic-framework


    【解决方案1】:

    你正在返回函数,所以它不起作用

    import { Component } from '@angular/core';
    import { ModalController, NavController } from 'ionic-angular';
    
    import { pokemonDataService } from '../../providers/data/data';
    
    @Component({
        selector: 'page-home',
        templateUrl: 'home.html'
    })
    
    export class HomePage {
      pocketMonsters = [];
      searchQuery: string = '';
    
      constructor(public navCtrl: NavController, public dataService:pokemonDataService) {}
    
      ionViewDidLoad() {    
           this.dataService.getAllPokemon().then((data) => {    
               data.map((pocketMonster) => {
               > this.pocketMonsters = data;
                   return pocketMonster;    
               });    
           });    
       }
    }
    

    【讨论】:

    • this.pocketMonsters = 数据;位置高于返回函数
    • 我试过了,但它仍然只显示数字 1-9 的列表。如何显示 json 文件中每个口袋妖怪的每个属性?例如:pokemonName、描述等?
    • 显示console.log(this.pocketMonsters)的结果
    • 看起来它正在从 json 中提取数据,我只需要弄清楚如何解析它。这是控制台日志:0:{pokemonName:“Bulbasaur”,pokedexNumber:“001”,描述:“可以看到Bulbasaur 在明亮的阳光下打盹。……在阳光的照射下,种子逐渐变大”,pokemonImage:“
    • 如果你能把你的teamviewer给我,我可以帮助你
    【解决方案2】:

    我发现了我的问题。我可以做 {{pocketMonster....}} 从每个对象访问我需要的东西。示例:{{pocketMonster.pokemonName}}。

    【讨论】:

      猜你喜欢
      • 2017-12-23
      • 2019-09-06
      • 2023-04-01
      • 1970-01-01
      • 2018-07-28
      • 1970-01-01
      • 2011-10-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多