リポジトリからデータを読み取り、並べ替えてタスクのリストを表示し、新しいタスクを追加するときにデータを保存し、データを削除する必要があります。
この問題を解決するために、新しいdataboom.angular.jsライブラリを使用して、Angular.jsアプリケーションのdataboom.spaceリポジトリを操作できます。
サンドボックス内の例とアプリケーションコード。
サービス発表
最初に行うことは、サービスの登録です。 Angularは、サービスを使用して一般的なコードを作成するいくつかの方法を提供します。 それらの詳細については、 こちらをご覧ください 。
最も単純なタイプがタスクに使用されます:factory
angular.module('todoApp', []) .factory('db', databoomSrv('https://samples.databoom.space', 'sandboxdb')) .controller('TodoListController', function (db) { ... });
タスクリストの読み取りと並べ替え
function updateList() { db.load('tasklist', { orderby: "date desc" }) .then(function (data) { todoList.taskList = data }) }
db.load関数( 'tasklist'、{orderby:“ date desc”})は、サーバーにタスクリスト( 'tasklist'コレクション内のすべてのオブジェクト)を読み取る要求を送信します。 この要求には、日付順にデータを逆順に並べ替えるという要件も伴います。 データのフィルタリング、ページング、拡張などのオプションもあります。
データベースへの新しいタスクの追加
todoList.addTodo = function () { if (!todoList.todoText) //save only not empty tasks return db.save('tasklist', { text: todoList.todoText, done: false, date: new Date() }) .then(function () { updateList(); todoList.todoText = '' }) }
db.save関数( 'tasklist'、{text:todoList.todoText、done:false、date:new Date()})は、新しいタスクを保存します( 'tasklist'コレクションに追加します)。
タスクを削除
todoList.delTodo = function (id) { db.del(id).then(updateList) }
db.del(id)関数は、指定されたIDを持つオブジェクトを削除します。
データを保存して読み取るには、クライアントアプリケーションで数行のコードだけが必要であり、サーバーでの単一のアクションは必要ありません。 データブームサーバーを使用すると、データスキームを最初に記述してサーバーを管理することなく、データをそのまま保存できます。
その他のライブラリAPIはこちらにあります 。
ライブラリ開発
ライブラリの次のバージョンには次の機能が含まれます。
- サーバーとのその後の同期で接続が失われた場合にローカルストレージにデータをキャッシュします。
- クライアント間の継続的なオンラインデータ同期(websocketを使用)-たとえば、新しいタスクを追加すると、すぐにすべてのユーザーに表示されます。