【问题标题】:How to display data ionic in ionViewWillEnter using post method?如何使用 post 方法在 ionViewWillEnter 中显示离子数据?
【发布时间】:2019-06-18 15:12:13
【问题描述】:

我不知道如何将数据从 API 显示到离子应用程序。我不知道如何使用本地存储或 navParams 或两者来显示数据

我尝试的是在 ionViewWillEnter 中使用 post 方法来调用 ionic 中的数据。

下面是调用所有数据的成功API。 .api

    public function viewProfileClinic(Request $request)
        {
            $id =$request->id;
            $clinicID = $request->clinic_id;

            $count = RegisterClinic::where('clinic_id',$clinicID)->count();

            if($count == 1)
            {
                $clinicData = RegisterClinic::where('clinic_id',$clinicID)->first();        
                $callEmailTelno = User::where('id',$clinicData->uid)->first();

                    $datamsg = response()->json([
                        'callemailtelno' => 'Email:'.$callEmailTelno->email.'Telno:'.$callEmailTelno->telno,
                        'clinicdata' => $clinicData 

                    ]);
                    return $datamsg->content();

            }
            else{

                $datamsg = response()->json([
                    'error' => array("text"=>"No clinic data.")
                ]);
                return $datamsg->content();
            }
        }

如何将来自该 API 的数据显示回 ionic? 以下是我在 __ .ts__ 文件中尝试过的内容。

cprofile.ts

    ionViewWillEnter(){

        this.authService.postData(this.id,'viewProfileClinic').then((result) => {
          this.responsedata = result;
          console.log(result);
          if(this.responsedata.callemailtelno && this.responsedata.clinicdata)
          { 

              localStorage.setItem('callemailtelno', JSON.stringify(this.responsedata.callemailtelno));
              console.log(this.responsedata.callemailtelno);  
              const data = this.navParams.get('data');


                this.usersClinic.email = data.email;
                this.usersClinic.telno = data.telno;
                this.clinic_regno = data.clinic_regno;
                this.clinic_name = data.clinic_name;
                this.site = data.site;
                this.clinic_address = data.clinic_address;
                this.zip = data.zip;
                this.city = data.city;
                this.state = data.state;

          }
          else
          {
              this.presentError(this.responsedata.error.text);
              console.log(this.responsedata.error);
          }
        },(err) =>{

        });
  }

.cprofile.html

<ion-list>
<p>Clinic Profile</p>
 <form #f="ngForm" (ngSubmit)="onSubmit(f)" class="list-form">
        <ion-item>
        <ion-label stacked>Clinic Email</ion-label>
        <ion-input type="text" name="usersClinic.email" [(ngModel)]="usersClinic.email">{{usersClinic.email}}</ion-input>
        </ion-item>

        <ion-item>
        <ion-label stacked>Telephone no.</ion-label>
        <ion-input type="text" name="usersClinic.telno" [(ngModel)]="usersClinic.telno">{{usersClinic.telno}}</ion-input>
        </ion-item>

        <button ion-button color="light" class="transparent-button" [disabled]="!f.valid" text-center round>
          Edit
        </button>
      </form>
      <ion-item>
        <p>Clinic Registration no</p>
        {{clinic_regno}}
      </ion-item>
      <ion-item>
          <p>Clinic Name</p>
          {{clinic_name}}
      </ion-item> 
      <ion-item>
          <p>Clinic Site</p>
          {{site}}
      </ion-item>
      <ion-item>
          <!-- <p>Clinic Address</p>  -->
          <ion-label primary>Clinic Address</ion-label>
           <!-- <ion-textarea>{{clinic_address}},{{zip}},{{city}},{{state}}.</ion-textarea> -->
           <ion-textarea rows="6" disabled [value]="clinic_address" ></ion-textarea>
      </ion-item>


    </ion-list>

我想要的只是能够以离子显示的数据。 因为我在邮递员中测试运行 API 时可以显示所有数据。

【问题讨论】:

  • 显示你的 cprofile.html 文件
  • 好的,我已经编辑了这个问题。

标签: laravel ionic-framework postman


【解决方案1】:

请尝试使用此代码显示数据

ionViewWillEnter(){
        this.authService.postData(this.id,'viewProfileClinic').then((result) => {
          this.responsedata = result;
          console.log(result);
              this.usersClinic.email = this.responsedata.email;
                this.usersClinic.telno = this.responsedata.telno;
                this.clinic_regno = this.responsedata.clinic_regno;
                this.clinic_name = this.responsedata.clinic_name;
                this.site = this.responsedata.site;
                this.clinic_address = this.responsedata.clinic_address;
                this.zip = this.responsedata.zip;
                this.city = this.responsedata.city;
                this.state = this.responsedata.state;
        },(err) =>{

        });
  }

【讨论】:

  • 请添加此关键字,例如this.responsedata.email 和我也编辑答案
  • 是的,我已经添加了,但是当我运行 ionic serve 时,数据仍然无法在 ionic 中显示。在控制台显示“无数据诊所”
  • 如果数据不是来自服务器而不是显示你需要联系api人员或首先检查邮递员数据是否来了
  • 邮递员数据可以在邮递员中显示。我使用 POST 方法 ''apiaddress/newclinic/public/api/viewProfileClinic"
猜你喜欢
  • 2019-06-15
  • 2016-05-11
  • 2021-10-19
  • 2017-10-09
  • 1970-01-01
  • 2018-05-29
  • 1970-01-01
  • 1970-01-01
  • 2019-09-10
相关资源
最近更新 更多