Skip to content
This repository has been archived by the owner on May 19, 2019. It is now read-only.

c58/marsdb-angular

Repository files navigation

MarsDB-Angular

Build Status npm version Dependency Status

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.

Examples

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’).

Contributing

I’m waiting for your pull requests and issues. Don’t forget to execute gulp lint before requesting. Accepted only requests without errors.

License

See License