Prototyping Angular Resources
ngResource is a useful Angular.js module which aids communication with RESTful data sources. ngResource objects can be extended using prototypes just like any other JavaScript object.
Let’s start with a simple resource called persons. Imagine that a person contains only a name and an id. An example record would be
{"id": 1, "name": "James"}
Now, let’s connect to the resource (which is hosted at myfakeurl.com/persons) using ngResource.
var PersonsResource = $resource('http://myfakeurl.com/persons/:id');
We don’t want our people to be rude, so let’s extend our resource to let them introduce themselves to the JavaScript console.
PersonsResource.prototype.introduce = function () {
var introduction = "Hi, my name is " + this.name;
console.log(introduction);
}
Any people created using the resource will now be able to introduce themselves.
var james = PersonsResource.get({id: 1});
james.introduce(); // logs "Hi, my name is James"
var people = PersonsResource.query();
people[0].introduce(); // logs "Hi, my name is James"