Показать сообщение отдельно
  #15 (permalink)  
Старый 06.08.2013, 23:01
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от 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. благодаря паттерну "наблюдатель" в моей реализации, за событиями загрузки и добавления в очередь могут следить сразу несколько контроллеров
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук

Последний раз редактировалось nerv_, 06.08.2013 в 23:13.
Ответить с цитированием