aboutsummaryrefslogtreecommitdiffstats
path: root/src/Resource.js
diff options
context:
space:
mode:
authorAdam Abrons2010-03-15 15:57:12 -0700
committerAdam Abrons2010-03-15 15:57:12 -0700
commit79b743e52feb2c57ba0ae42d6d2742bc2189b22f (patch)
tree0f9577f1c550a97d764012972cb0d87a2914cffe /src/Resource.js
parentf9f181a33e10bb698ff437bb3939f544ca92e39f (diff)
downloadangular.js-79b743e52feb2c57ba0ae42d6d2742bc2189b22f.tar.bz2
resources, with bind()
Diffstat (limited to 'src/Resource.js')
-rw-r--r--src/Resource.js14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/Resource.js b/src/Resource.js
index bed3def6..c0c7934c 100644
--- a/src/Resource.js
+++ b/src/Resource.js
@@ -43,14 +43,14 @@ ResourceFactory.DEFAULT_ACTIONS = {
};
ResourceFactory.prototype = {
- route: function(url, idPaths, actions){
+ route: function(url, paramDefaults, actions){
var self = this;
var route = new Route(url);
actions = $.extend({}, ResourceFactory.DEFAULT_ACTIONS, actions);
- function extractIds(data){
+ function extractParams(data){
var ids = {};
- foreach(idPaths, function(path, id){
- ids[id] = Scope.getter(data, path);
+ foreach(paramDefaults, function(value, key){
+ ids[key] = value.charAt && value.charAt(0) == '@' ? Scope.getter(data, value.substr(1)) : value;
});
return ids;
}
@@ -83,7 +83,7 @@ ResourceFactory.prototype = {
}
var value = action.isArray ? [] : new Resource(data);
- self.xhr.method(action.method, route.url($.extend({}, action.params || {}, extractIds(data), params)), data, function(response) {
+ self.xhr.method(action.method, route.url($.extend({}, action.params || {}, extractParams(data), params)), data, function(response) {
if (action.isArray) {
foreach(response, function(item){
value.push(new Resource(item));
@@ -96,6 +96,10 @@ ResourceFactory.prototype = {
return value;
};
+ Resource.bind = function(additionalParamDefaults){
+ return self.route(url, $.extend({}, paramDefaults, additionalParamDefaults), actions);
+ };
+
if (!isGet) {
Resource.prototype['$' + name] = function(a1, a2){
var params = {};