marsdb-angular

0.1.2 • Public • Published

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

/marsdb-angular/

    Package Sidebar

    Install

    npm i marsdb-angular

    Weekly Downloads

    3

    Version

    0.1.2

    License

    MIT

    Last publish

    Collaborators

    • a.artemev