Сообщение от Shitbox2
|
У меня всё проще
|
ну, я бы не сказал, что у меня сложно
сколько людей столько и мнений сколько проггеров, столько и реализаций )
Мои вопросы и комментарии:
1. Для чего эта проверка?
var ok = e.dataTransfer && e.dataTransfer.types && e.dataTransfer.types.indexOf('Files') >= 0
в моей реализации есть такая штука
var dataTransfer = event.dataTransfer ? event.dataTransfer : event.originalEvent.dataTransfer; // jQuery fix;
фиксит подключении жуквери (т.е., если подключаешь жуквери, то получаешь ошибку без этого фикса)
в моей реализации
.directive( 'ngFileDrop', function( $fileUploader ) {
return {
// don't use drag-n-drop files in IE9, because not File API support
link: !window.File ? angular.noop : function( $scope, $element ) {
// code
}
};
})
обрати внимание на строку линковки. В IE9 есть событие сброса, но нету файлов
Будь осторожен )
2. Почему на мой взгляд не удобно одной директивой
Если она висит на инпуте, то и сброс файла необходимо производить в инпут (что удобно далеко не всегда, проще бросать на документ, например)
В моей реализации можно:
- загружать файлы с дран-н-дропом и с помощью инпута
- либо только дран-н-дропом
- либо только инпутом
В моей реализации ловящих областей может быть много, также как и инпутов.
3. Не понял, можно ли в твоей реализации "загружать по кнопке", т.е. сбросили файлы, а затем нажали кнопку загрузить (у меня для этого есть очередь)
4. валидаторы и генерацию превьюшек я бы вынес из директивы... и я вынес
5. благодаря паттерну "наблюдатель" в моей реализации, за событиями загрузки и добавления в очередь могут следить сразу несколько контроллеров