小编SDL*_*UJO的帖子

我可以将 async/await Promise 与 observable RXJS 混合使用吗?

我正在使用 ionic/angular 和 RXJS observables。

我正在尝试使用 Rxjs observables 重构我的代码,我有下一个代码:

ionViewWillEnter() {
    if (this.platform.is('core') || this.platform.is('mobileweb')) {
      this.lat = 37.3675506;
      this.lng = -6.0452695;
      this.printMap();
    } else {
      if (this.platform.is('android')) {       
        this.tryGeolocation();            
      } else if (this.platform.is('ios')) {
        console.log("IOS")
      }
    }
  }
Run Code Online (Sandbox Code Playgroud)

如果用户从 android 移动设备访问我应该检查:isLocationAuthorized、isLocationEnabled() 以使用 getCurrentPosition() 获取当前位置,然后我必须在使用 Observables forkjoin 的地方打印 Map。

问题是检查方法返回承诺,我不知道如何链接这个流程。

tryGeolocation 是下一个:

 async tryGeolocation() {
    try {
      if (await this.diagnostic.isLocationAuthorized()) {
        if (await this.diagnostic.isLocationEnabled()) {
          this.loading = this.loadingCtrl.create({
            content: 'Localizando...',
            dismissOnPageChange: true
          });
          this.loading.present();
          const {coords} = await this.geolocation.getCurrentPosition();
          this.lat …
Run Code Online (Sandbox Code Playgroud)

observable rxjs ionic-framework rxjs5 angular

6
推荐指数
1
解决办法
4805
查看次数

编辑时,如何仅以 2+ 角度反应形式发送编辑/更改的字段?

我想在编辑时仅从我的表单发送编辑/更改的值。

目前,我的表单发送所有表单值。

我正在使用接口:

export interface WorkExperience {
  id?: number;     
  name_company:string;     
  date_start:string;
  date_end:string;     
}
export interface WorkExperienceUpdate {
  id_work_experience: number;
  experience: WorkExperience;
}
Run Code Online (Sandbox Code Playgroud)

我在我的 .ts 上这样做:

经验:工作经验;

this.experience = this.navParams.get('experience');

this.registrationForm = formBuilder.group({         
        company: [this.experience.name_company, Validators.required],         
        date_start: [this.formatDate(this.experience.date_start), Validators.required],
        date_end: [this.experience.date_end ? this.formatDate(this.experience.date_end) : '']            
      });
Run Code Online (Sandbox Code Playgroud)

我的 html 是:

<form [formGroup]="registrationForm">              
          <ion-item>
            <ion-label floating>Company</ion-label>
            <ion-input type="text" formControlName="company"></ion-input>
          </ion-item>              
            <ion-label floating>Start Date</ion-label>
            <ion-datetime displayFormat="DD-MM-YYYY" formControlName="date_start"></ion-datetime>
          </ion-item>
          <ion-item>
            <ion-label floating>End Date</ion-label>
            <ion-datetime displayFormat="DD-MM-YYYY" formControlName="date_end"></ion-datetime>
          </ion-item>
        </form>
Run Code Online (Sandbox Code Playgroud)

我使用相同的表单进行添加和编辑,因此在编辑时我只需要发送不相同的元素,如下所示:

  1. 如果只编辑 End Date ,则对象应该是:

{ "id_eduative_experience": …

typescript ionic3 angular

3
推荐指数
1
解决办法
1480
查看次数

标签 统计

angular ×2

ionic-framework ×1

ionic3 ×1

observable ×1

rxjs ×1

rxjs5 ×1

typescript ×1