Ввод Ionic Angular не обновляется до щелчка, когда имя пользователя / пароль загружены из ios keychain - PullRequest
2 голосов
/ 04 апреля 2019

Я столкнулся со странной проблемой с ionic 3. У меня включена брелок iOS для пользователей при входе в мое приложение. Он заполняет значения, но только после того, как они щелкнули по вводу после использования цепочки для ключей.

Мой вклад:

<input 
  name="login_email" 
  id="user-text-field" 
  autocomplete="username" 
  type="email" 
  class="input-no-bottom-border" 
  placeholder="Email" 
  (change)="socialLoginProvider.loginEmail = $event.target.value" 
  [(ngModel)]="socialLoginProvider.loginEmail"
>

Обычно, когда они нажимают кнопку цепочки для ключей на клавиатуре, они идут как положено, но как только они возвращаются в приложение, входные данные остаются пустыми, пока пользователь не щелкнет по одному из них, затем он вызовет (change) и обновит значения, позволяя пользователю Войти.

1 Ответ

0 голосов
/ 04 апреля 2019

Ionic 3 не обнаруживал изменений и является известной ошибкой, исправленной в v4. Для того, чтобы это исправить, я настроил функцию обнаружения изменений по клику. Я использовал ChangeDetectorRef.detectChanges()

(tap)="createDetector()"

detector;

detectChanges() {
  return setInterval(() => {
    this.changes.detectChanges();
  }, 500);
}

createDetector() {
  this.detector = this.detectChanges();
}

destroyDetector() {
  clearInterval(this.detector);
}

Я использую clearInterval при завершении метода, просто чтобы очистить интервал, чтобы он не работал постоянно.

...