MarsDB-Angular is an AngularJS 1.x binding for MarsDB. It makes easy to use MarsDB in an angular application by automatically wrap all returned promises with $q
and destroy observers on $scope's $destroy
event.
Include marsdb.angular.js
after marsdb.min.js
and angular.js
in your <head>
. Also don't forget to include marsdb.polyfills.js
. Then add a MarsDB
dependency in your module. That's it. Now you can use $collection
factory. For example:
angular.module(‘app’, [‘MarsDB’])
.controller(function($scope, $collection) {
// Each call for a `$collection(...)` automatically
// creates new collection if it is not exists
const posts = $collection(‘posts’);
// All methods in $collection returns a $q promise
// So you don’t need to manually call $digest
posts.find({authorId: 123}).observe((docs) => {
$scope.posts = docs;
}, $scope).then(() => {
$scope.loaded = true;
});
// $scope at last argument needed for auto-binding
// to a “$destroy” event of the scope for stop
// observing changes. You can call it manually and
// don’t pass last argument.
});
All included storage implementations is available in a Mars.Storages
global variable. You can set different default storage by $collectionProvider.defaultStorageManager(Mars.Storages.LocalForage)
.
You also can use MarsDB within browserify environment. Just require(‘marsdb-angular’)
and MarsDB module will be added to the angular. Angular must be defined in a window
or must be available as a module require(‘angular’)
.
I’m waiting for your pull requests and issues.
Don’t forget to execute gulp lint
before requesting. Accepted only requests without errors.
See License