AngularJS |Создать путь из папок - PullRequest
0 голосов
/ 22 мая 2018

В настоящее время я рекурсивно просматриваю папки и хочу "построить" путь к моим папкам.

Теперь я могу создать путь следующим образом: folder1/folder2/folder3 с помощью строковой переменной, которую я обновляю следующим образом:

path += nameOfFolder + "/";

, но когда я возвращаюсь к folder2, мой путь похож на: folder1/folder2/folder3/folder2.

Я просто хочу удалить последний объект в моем списке и не добавлять его.

Есть ли что-то в AngularJS, чтобы автоматически выполнять всю эту систему, или мне нужносделать это вручную?

1 Ответ

0 голосов
/ 22 мая 2018

Я до сих пор не знаю, как вы используете папки в AngularJS.Но, предполагая, что у вас уже есть способ навигации между ними, я предлагаю использовать stack , чтобы отслеживать, какие папки вы посетили.Стек - это просто массив, который работает с принципалом «Последний пришел первым» .Я сделал это небольшое моделирование для нумерации страниц:

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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...