2017-01-03 7 views
1

У меня были проблемы с этим некоторое время, и я не могу найти решение в любом месте, в основном я пытаюсь вызвать событие щелчка на тип входного файла, но это событие должно запускаться внутри обещания, когда i попробуйте вызвать событие непосредственно внутри обещания, что консоль регистрирует сообщение об ошибке «digest in progress» , если я поставлю тайм-аут внутри обещания, ошибка исчезнет, ​​но событие не будет запущено, единственный способ, которым я сделал эту работу, - это добавив таймаут примерно на одну секунду за пределами обещание, но я действительно не хочу, чтобы полагаться на это событие определенного тайм-аутаКак я могу вызвать событие клика (на входе типа файла) внутри обещания?

контроллер выглядит примерно так

scope.handleDblClick = function() { 
    asyncFunction() 
     .then(function (response){ 
      switch(response){ 
       case 'option1': 
        //do something 
        break; 
       case 'option2': 
        document.getElementById('fileInputId').click(); 
        break; 
      } 

     }); 
} 

Эта функция вызывается, когда этот ввод текста получает дважды щелкнуть

<input type="text" ng-dblclick="handleDblClick()"/> 

Это входной файл, который должен быть запущен в обещании должен срабатывать таким образом, потому что

<input type="file" id="fileInputId"/> 

Событие результат функции async определяет, будет ли нажат входной файл или какое-либо другое действие, функция handleDblClick обрабатывает различные действия на основе ответа обещания, и одно из этих действий включает открытие проводника файлов для выбора файл

+0

Что делает ваш контроллер выглядеть? И ваш компонент с файлом ввода? –

+0

добавьте соответствующий код. – raj

+0

Я добавил соответствующую часть, где моя основная проблема, и еще одно объяснение. –

ответ

0

Я нашел свой собственный ответ, оказывается, что java-script вызовет только диалоговое окно элемента входного файла, если он исходит от обработчика событий, который был вызван пользователем, и ему нужно доверять :) Спасибо!

Я оставлю ссылку здесь

https://github.com/angular/material/issues/8639

 Смежные вопросы

  • Нет связанных вопросов^_^