Angular.js永続ストレージ

従来のtodoアプリケーションにデータを保存する機能を追加するとします。



画像



リポジトリからデータを読み取り、並べ替えてタスクのリストを表示し、新しいタスクを追加するときにデータを保存し、データを削除する必要があります。



この問題を解決するために、新しい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はこちらにあります



ライブラリ開発



ライブラリの次のバージョンには次の機能が含まれます。

  1. サーバーとのその後の同期で接続が失われた場合にローカルストレージにデータをキャッシュします。
  2. クライアント間の継続的なオンラインデータ同期(websocketを使用)-たとえば、新しいタスクを追加すると、すぐにすべてのユーザーに表示されます。



All Articles