angular-collection v0.5.3
AngularCollection

Description
AngularCollection is a collection module for AngularJS.
Installation
angular-collection is a bower component you should be able to install it by running:
bower install angular-collection
or if you already have a bower based project you can add angular-collection to your dependency list in bower.json
"dependencies": {
...
"angular-collection": "0.x.x"
...
}API
add(obj, options)
addAll(array, options)
sort()
get(obj | id)
update(obj)
remove(obj)
removeAll()
last()
at(index)
size()
all()
Usage
Specify dependencies
var app = angular.module('myApp', ['ngCollection']);Define new factory
app.factory("TodoCollection", function($collection){
var TodoCollection = $collection;
return TodoCollection;
})Get collection instance
var todos = TodoCollection.getInstance();Add new records
_id property will be generated and attached to each new record.
todos.add({ title: "todo1" });
todos.add({ title: "todo2" });
todos.add({ title: "todo0" }, {index: 0});Get a single record
Get a record from the collection, specified by an id or by passing in a record.
var todo = todos.get(10);Update a single record
If a record is already in the collection, its attributes will be merged.
todos.update({ id: 1, title: 'todos3' });Remove a record from the collection
todos.remove({ id: 1, title: 'todos3' });Get a single record, spcified by index
todos.at(1);Sort records as they are added to collection
Sort the collection by title descending each time you call add()
var todos = $collection.getInstance({comparator: "-title"});
todos.add({ title: "todo1" }); // performs sort
todos.add({ title: "todo2" }); // performs sortSort records on demand
Sorts the collection by title descending but only when sort() is called
var todos = $collection.getInstance();
todos.add({ title: "todo1" });
todos.add({ title: "todo2" });
todos.sort('-title'); // performs sortOptions
You can pass a single parameter to getInstance to specify additional options.
var todos = TodoCollection.getInstance(options);Currently the only options available are idAttribute and comparator.
var todos = TodoCollection.getInstance({idAttribute: 'id', comparator: '-created_at'});