2017-06-13 35 views
1

我的離子3應用程序中有一個非常奇怪的問題。我將一個功能添加到應用程序,該功能涉及使用Angular 2+形式和驗證程序的多步輸入過程。在網絡,Android和較舊的iOS設備(iOS 9)上都可以。在iOS上10我讓我的提交第一種形式的步驟之後的情況如下:Ionic 2+,僅iOS問題:由於頁面加載而重置插件

Resetting plugins due to page load 

然後將應用程序重新啓動。主要觸發點似乎是在第一步隱藏第一個窗體並顯示第二個窗體之後設置布爾值。評論一條線可以防止這個問題。

有什麼我可以做的,以找到更多的信息,爲什麼這個錯誤只在iOS 10中被拋出?額外的日誌記錄,例如?

HTML

<ion-card> 
    <ion-card-header> 
     <ion-icon name="person-add"></ion-icon> Sign Up! 
    </ion-card-header> 

    <!--Step 1 - confirm user--> 
    <ion-list no-lines *ngIf="!hasConfirmedStep1"> 
     <form [formGroup]="formStepOne"> 

     <...SNIP...> 

     <ion-item> 
      <button ion-button icon-right float-right small (click)="checkUser()" [disabled]="!formStepOne.valid"> 
      Next 
      <ion-icon name="arrow-round-forward"></ion-icon>  
      </button> 
     </ion-item> 
     </form> 
    </ion-list> 

    <!--Step 2...Create Account--> 
    <ion-list no-lines *ngIf="hasConfirmedStep1 && !hasConfirmedStep2"> 
     <form [formGroup]="formStepTwo"> 


     <!--Email/Confirm email--> 
     <div formGroupName="validEmail"> 

     <...SNIP...> 

     </div> 
     <ion-item> 
      <button ion-button icon-right float-right small (click)="createUser()" [disabled]="!formStepTwo.valid"> 
      Next 
      <ion-icon name="arrow-round-forward"></ion-icon>  
      </button> 
     </ion-item> 
     </form> 

    </ion-list> 
</ion-card> 

TS

async checkUser() { 

    this.hasSubmittedStep1 = true; 
    this.errorMessage = this.successMessage = ""; 

    if (!this.formStepOne.valid) { 
     this.loggingService.debug("Invalid signup form for Check User"); 
     this.errorMessage = "Please enter valid input."; 
    } 
    else { 
     this.loggingService.debug("Valid signup form for Check User. Checking info..."); 

     //Confirm User 


     this.successMessage = 'Confirmed! Please Create Account.'; 
     this.hasConfirmedStep1 = true; 
    } 
    } 

回答

1

我不知道爲什麼,但在iOS上10這個問題似乎是隱藏HTML [formGroup]標籤。此頁面構造函數使用formBuilder.group()來實例化這些表單的對象。也許在iOS 10上的某些東西需要與之相關的HTML表單?

我的修正是簡單地重新構造的網頁,以便<form>標籤總是顯示,但是在其中我有一個<div>我放在*ngIf上顯示/隱藏內部的視覺元素。奇怪,但似乎工作。

+0

哇,,太棒了,,太好了,謝謝你省了很多時間:) –