AngularJSでsortableのサンプル
最近ちょっとAngularJsを触りだしました。
まだ本家のチュートリアルとドットインストールを
やったくらいのレベル。
今後業務でsortableなリストとか作る
必要がありそうなので調査。
どうも「AngularUI」を使ってみるとイイっぽい。
■AngularUI
http://angular-ui.github.io/
以下のサイトでも紹介されています。
■AngularUIってどんなもの?
http://knightso.hateblo.jp/entry/2014/04/02/182924
「AngularUI」内の「UI-Modules」にある「ui-sortable」を利用して
作成してみます。
「ui-sortable」の使い方は以下。
angular-ui/ui-sortable
https://github.com/angular-ui/ui-sortable
で、実際にsortableなものを作ってみたのがこちら。
一応ソース
<html ng-app="myApp">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>AngularJs sortable sample</title>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.1.0/css/bootstrap.min.css"></link>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.1.3/angular.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/angular-ui/0.4.0/angular-ui.min.js"></script>
<script>
var app = angular.module('myApp', ['ui']);
app.controller('myCtrl', function($scope) {
// サンプルデータ
$scope.items = [
{'title' : 'aaaaa'},
{'title' : 'bbbbb'},
{'title' : 'ccccc'},
{'title' : 'ddddd'},
{'title' : 'eeeee'},
{'title' : 'fffff'},
{'title' : 'ggggg'},
{'title' : 'hhhhh'},
{'title' : 'iiiii'},
];
// jQueryUIのsortableのオプションが使える。
$scope.sortableOptions = {
axis: 'y'
};
});
</script>
</head>
<body ng-controller="myCtrl">
<div class="container" style="margin-top:20px;">
<h1>AngularJs sortable sample.</h1>
<div class="row">
<div class="col-md-4">
<div class="panel panel-default">
<div class="panel-heading">
↓並び替え
</div>
<div class="list-group" ui-sortable="sortableOptions" ng-model="items">
<a class="list-group-item" href="#" ng-repeat="item in items">{{item.title}}</a>
</div>
</div>
</div>
<div class="col-md-8">
<h3>↓データの状態</h3>
<pre>{{items|json}}</pre>
</div>
</div>
</div>
</body>
</html>
すっきりしてていい感じ。

