javascript - AngularJS 文件浏览器

标签 javascript angularjs angularjs-directive

我不确定如何以 Angular 方式进行此操作。

我想实现一个类似于下面的文件浏览器:example 1example 2

它应该实现的功能是:

  • 显示当前目录下的文件和文件夹
  • 能够单击文件夹以展开它们(如示例)

所以我现在拥有的是作为路径数组的文件和文件夹列表。这是由 onDrop 或 onChange 事件(来自拖放或输入)生成的。

关于如何实现这个有什么建议吗?

最佳答案

看看@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);
    }
};

关于javascript - AngularJS 文件浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21351607/

相关文章:

angularjs - 选择选项时 ng-model 不会更新

javascript - 在 Angular 中以非表格格式显示 JSON 数据有哪些方法?

javascript - 当一组 polymer 纸张切换按钮中的一个被按下时触发事件

javascript - 在 sinon 中创建一个假的 object.method() "from scratch"?

angularjs - ngAnimate 导致错误

html - Bootstrap 网格系统 : pull last column right regardless of other columns?

javascript - 不填充模板的 AngularJS 和指令范围

javascript - 列表项删除线 react

javascript - Emscripten 可以将 LLVM 编译成 JavaScript 吗?

html - 在自动对焦html5输入日期字段上打开日期选择器AngularJS