SITUATION:
Bonjour les gars! Dans mon application, j'ai une sorte de kanban: il y a quelques colonnes, chacune contenant une liste d'éléments.
Je dois faire glisser des éléments parmi les colonnes et les réorganiser dans la même colonne.
J'ai déjà essayé trois modules angulaires liés au glisser-déposer (les deux premiers) et au réordonnancement (le troisième):
ngDraggable : https://github.com/fatlinesofcode/ngDraggable
Angular dragdrop : https://github.com/codef0rmer/angular-dragdrop
Angular ui-sortable : https://github.com/angular-ui/ui-sortable
Ils sont gentils, avec une bonne documentation, mais il ne semble pas possible de glisser-déposer et de réorganiser en même temps. Puis j'ai trouvé un autre module:
ng-sortable : https://github.com/a5hik/ng-sortable
Cela semble être exactement ce dont j'ai besoin. Mais la documentation n'est pas si claire. Je ne suis pas capable de comprendre comment le configurer.
QUESTION:
Pouvez-vous me montrer s'il vous plaît comment le configurer? Il y a un plunker avec un bon exemple clair?
Je vous remercie!
Configuration minimale triable (pas besoin de bower. Bower est une confusion pour les demi-produits comme moi, aussi.).
C'est la configuration minimale pour obtenir un tableau triable complet avec ng-sortable, qui a fonctionné pour moi.
Charge les Javascripts nécessaires
Charger angular.js
Charger ng-sortable.js _ (Trouver ceci dans le dossier dist du fichier téléchargé .Zip fichier https://github.com/a5hik/ng-sortable )
Chargez le as.sortable dans votre application var app = angular.module('app', ['ngRoute', 'as.sortable']);
Chargez votre AppController.js
Charge les feuilles de style nécessaires
(Trouvez les deux dans le dossier dist du fichier téléchargé .Zip file https://github.com/a5hik/ng-sortable )
Charger ng-sortable.style.css
Créer ul avec les attributs nécessaires (data-as-sortable data-ng-model="sortableList"
)
Ajouter data-as-sortable-item
à li
Insérer div avec data-as-sortable-item-handle
dans li
<!DOCTYPE html>
<html>
<head>
<title>NG-Sortable</title>
<script type="text/javascript" src="js/angular/angular.js"></script>
<script type="text/javascript" src="js/sortable/ng-sortable.js"></script>
<script type="text/javascript" src="js/app.js"></script>
<script type="text/javascript" src="js/AppController.js"></script>
<link rel="stylesheet" type="text/css" href="css/ng-sortable.css">
<link rel="stylesheet" type="text/css" href="css/ng-sortable.style.css">
</head>
<body ng-app="app" ng-controller="AppController">
<ul data-as-sortable data-ng-model="sortableList">
<li ng-repeat="item in sortableList" data-as-sortable-item>
<div data-as-sortable-item-handle>
index: {{$index}} | id: {{item.id}} | title: {{item.title}}
</div>
</li>
</ul>
</body>
</html>
// app.js (Your file)
var app = angular.module('app', ['ngRoute', 'as.sortable']);
// AppController.js (Your file)
app.controller('AppController', [
'$scope',
function ( $scope) {
$scope.sortableList = [
{
id : "id-000",
title : "item 000"
},
{
id : "id-001",
title : "item 001"
},
{
id : "id-002",
title : "item 002"
}
];
}
]);
Cela nous aiderait si nous savions ce que vous entendez par "configurer" (que vous vouliez réellement l'ajouter au projet ou comment l'utiliser). Cela aiderait également si nous savions quelle pile, le cas échéant, vous installiez ceci sur.
À installer
Les instructions d’installation se trouvent dans la section "Utilisation" de la page Git.
bower install ng-sortable
ou bower install ng-sortable -save
si vous utilisez yeomanng-sortable.min.js
, ng-sortable.min.css
et ng-sortable.style.min.css
à votre projet. L'ajout de ceux-ci dépend de la pile que vous utilisez.ui.sortable
en tant que dépendance de votre application ou de votre module. Encore une fois, son utilisation dépend de votre pile. Utiliser
<ul data-as-sortable data-ng-model="array">
<li ng-repeat="item in array" data-as-sortable-item>
<div data-as-sortable-item-handle>
{{item.data}}
</div>
</li>
</ul>
Où "tableau" est le tableau d'éléments que vous triez. Cela fonctionnera immédiatement, mais si vous avez besoin d'une logique personnalisée, remplacez data-as-sortable
par data-as-sortable="CustomLogic"
Où "CustomLogic" est une méthode de votre contrôleur qui remplace le comportement par défaut. Pour plus de détails sur la façon d’ajouter une logique personnalisée, consultez leur page Git dans les sections "Rappels" et "Utilisation".
Je viens de télécharger un exemple simple de cette bibliothèque géniale. J'ai deux divs côte à côte, vous pouvez les déplacer de l'un à l'autre. J'utilise des données statiques. Vérifie s'il te plaît. https://github.com/moytho/DragAndDropAngularJS/tree/master/DragAndDrop ou comme vous l'avez demandé, vous pouvez le vérifier ici https://plnkr.co/SRN4u7
<body ng-controller="dragDropController">
<h1>Example</h1>
<div class="container">
<div id="row" class="row">
<div id="assignedEmployees" class="col-lg-5" style="border: 5px solid red;">
<div class="card" as-sortable="sortableOptions" data-ng-model="data.projects">
<div ng-repeat="project in data.projects" as-sortable-item>
<a title="Add card to column" ng-click="setDate(project)">
<i class="glyphicon glyphicon-plus"></i>
</a>
<div as-sortable-item-handle>{{project.FirstName}}</div>
</div>
</div>
</div>
<div id="freeEmployees" class="col-lg-5" style="background-color:lightgray;border:5px dashed gray;">
<div class="card" as-sortable="sortableOptions" data-ng-model="data.employees">
<div ng-repeat="employee in data.employees" as-sortable-item>
<div as-sortable-item-handle>{{employee.FirstName}}</div>
</div>
</div>
</div>
</div>
</div>