angularjs - AngularJS | 从文件夹构建路径
问题描述
我目前正在递归浏览文件夹,我想“构建”我的文件夹的路径。
现在我可以像这样创建路径:folder1/folder2/folder3
使用我这样更新的字符串变量:
path += nameOfFolder + "/";
但是当我回到folder2
我的道路时就像:folder1/folder2/folder3/folder2
。
我只想删除列表中的最后一个对象而不添加它。
AngularJS 中有什么东西可以自动完成整个系统,还是我必须手动完成?
解决方案
我仍然不知道您如何在 AngularJS 中使用文件夹。但是假设您已经有了在它们之间导航的方法,我建议使用堆栈来跟踪您访问过的文件夹。堆栈只是一个适用于主体Last-in-First-out的数组。我为分页做了这个小模拟:
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.stack = [];
$scope.path = "/";
$scope.go_to = function(name) {
if (!name || (name == $scope.stack[$scope.stack.length - 1])) {
return;
}
var index = $scope.stack.indexOf(name)
if (index >= 0) { // found such folder
$scope.stack = $scope.stack.slice(0, index + 1);
} else {
$scope.stack.push(name);
}
$scope.path = "/" + $scope.stack.join("/");
}
$scope.go_back = function() {
$scope.stack.pop();
$scope.path = "/" + $scope.stack.join("/");
}
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">
<h3>Folders simulation</h3>
Stack: <code>{{stack}}</code>
<br>
Path: <code>{{path}}</code>
<hr>
<button ng-click="go_to(folder_name)">Go to:</button> <input type="text" ng-model="folder_name" /><br>
<button ng-click="go_back()">Go back</button>
</div>
推荐阅读
- java - @SQLInsert 动态数据库架构
- mysql - MySQL 错误:操作数应在简单更新查询中包含 1 列
- spring-boot - Spring Boot 指标导出到 InfluxDB - 如何减少导出数量?
- javascript - 在调整窗口大小时,保持子元素根据其容器水平对齐,并根据其他子元素保持左对齐
- c# - 如何在“真实”方法中使用参数调用模拟方法?
- powershell - StaffHub Powershell Cmdlet - 团队 ID 必须具有 Team_guid 模式
- windows - 批处理脚本在 Windows 10 Pro 上运行,但不在 Surface Pro 4 上运行
- c++ - 浮点减法给了我不准确的结果
- cuda - CUDA 对数:nvprof 以双精度检测单精度操作
- python - 如何在 Django 中从 HTML 标记按钮在后台触发 Python 脚本?