2014-01-25 3 views
4

Я не уверен, как это сделать угловым способом.AngularJS file explorer

Я хотел бы реализовать файловый менеджер, похожий на следующие: example 1 или example 2

особенности он должен реализовать следующие:

  • показать файлы и папки в текущей директории
  • способность нажать на папок для их расширения (например, пример)

Так что у меня на данный момент есть список файлов и fo lders как массив путей. Это генерируется событием onDrop или onChange (от перетаскивания или ввода).

Любые советы о том, как это реализовать?

ответ

5

Возьмите взгляд на @angular-filemanager

FileNavigator.prototype.buildTree = function(path) { 
    var self = this; 
    var recursive = function(parent, file, path) { 
     var absName = path ? (path + '/' + file.name) : file.name; 
     if (parent.name && !path.match(new RegExp('^' + parent.name))) { 
      parent.nodes = []; 
     } 
     if (parent.name !== path) { 
      for (var i in parent.nodes) { 
       recursive(parent.nodes[i], file, path); 
      } 
     } else { 
      for (var i in parent.nodes) { 
       if (parent.nodes[i].name === absName) { 
        return; 
       } 
      } 
      parent.nodes.push({name: absName, nodes: []}); 
     } 
    }; 

    !self.history.length && self.history.push({name: path, nodes: []}); 
    for (var i in self.fileList) { 
     var file = self.fileList[i].model; 
     file.type === 'dir' && recursive(self.history[0], file, path); 
    } 
}; 
0

Попробуйте Angular Filesystem Reader.

Выполнение углового обслуживания для поиска файлов по расширению (-ам) асинхронно и синхронно, путем перемещения файловой системы, начиная с указанного корневого каталога. Также могут быть указаны эксклюзивные и/или неосведомленные каталоги. Доступны три варианта доступа: обратный вызов, обещание (синхронизация) и/или живое массив (асинхронный).