Я написал компонент Ember, который представляет собой стилизованное поле ввода, которое может обрабатывать загрузки файлов. Для этого я использовал <div>
и <input>
. У <input>
есть visibility: hidden
, и после того, как был запущен событие click на <div>
, я запускаю событие click на невидимом <input>
при обработке действий компонента Ember.Тип ввода = «файл» в Ember.js
Моя проблема заключается в том, что после выбора файлов действие никогда не достигает моего компонента Ember.
надстройку документ-input.hbs
<div {{action "add"}} class="floating-button">
<span>+</span>
</div>
{{input multiple="true" action="upload" on="change" accept="image/png,image/jpeg,application/pdf" type="file"}}
адд-документ-input.js
import Ember from 'ember';
export default Ember.Component.extend({
actions: {
upload() {
console.log('This never happens');
},
add() {
Ember.$("input[type='file']").click();
}
}
});
Я думаю, что это что-то делать со мной запуская событие щелчка в рамках действия. Таким образом, во второй раз действие происходит в представлении, которое не доходит до компонента.
Ember версия: 2.7.0
Хорошо. Спасибо за обходной путь, это сработало :) – Schnodderbalken
@Schnodderbalken 'Ember. $ (" Input [type = 'file'] "). Click();' вызывает клики по всем входам файла в документе. Вы должны заменить его на: 'this. $ (" Input [type = 'file'] "). Click();' –
Да, конечно. В этом случае это не имело значения, потому что это был единственный вход в документе, и проблема лежала где-то в другом месте. Спасибо за совет, хотя. – Schnodderbalken