На iPhone 4s не работает угловая директива

0

Я использую часто используемую ионную директиву, чтобы установить фокус на текстовое поле на загрузке страницы, которое показывает ионную клавиатуру, и отлично работает на каждом устройстве, которое я тестировал, за исключением iPhone 4s.

HTML

<textarea focus-me></textarea>

JS

.directive('focusMe', function($timeout) {
  return {
    link: function(scope, element, attrs) {
      $timeout(function() {
        element[0].focus();
      }),350;
    }
  };
});

На iPhone 4s, когда текстовое поле теряет фокус, клавиатура исчезает, а затем снова возвращается вверх. Это не происходит ни на одном другом устройстве.

Как настроить фокус на текстовое поле на загрузку страницы (и последующие загрузки страниц) и не допустить, чтобы ионная клавиатура выскакивала назад, когда текстовое поле теряет фокус?

  • 2
    Не уверен, что это ошибка вставки копии - но ваш вызов $timeout неверен. Это должно быть $timeout(function() { element[0].focus(); },350);
Теги:
iphone
ionic

1 ответ

1
Лучший ответ

В вашем коде есть ошибка, вызывающая директиву $timeout. Должен быть:

.directive('focusMe', function($timeout) {
  return {
    link: function(scope, element, attrs) {
      $timeout(function() {
        element[0].focus();
      }, 350); // correct this
    }
  };
});
  • 0
    О, хе-хе, ваупс. Виноват. Теперь это неудобно ... Спасибо, что указали на это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню