Skip to content

Commit 0b5c06b

Browse files
committed
Provided implementation for previous(), relying on static function 'walkThenGet' shared with get()
1 parent f480327 commit 0b5c06b

File tree

1 file changed

+19
-11
lines changed

1 file changed

+19
-11
lines changed

backbone-nested.js

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,11 @@
2727
Backbone.NestedModel = Backbone.Model.extend({
2828

2929
get: function(attrStrOrPath){
30-
var attrPath = Backbone.NestedModel.attrPath(attrStrOrPath),
31-
result;
32-
33-
Backbone.NestedModel.walkPath(this.attributes, attrPath, function(val, path){
34-
var attr = _.last(path);
35-
if (path.length === attrPath.length){
36-
// attribute found
37-
result = val[attr];
38-
}
39-
});
30+
return Backbone.NestedModel.walkThenGet(this.attributes, attrStrOrPath);
31+
},
4032

41-
return result;
33+
previous: function(attrStrOrPath){
34+
return Backbone.NestedModel.walkThenGet(this._previousAttributes, attrStrOrPath);
4235
},
4336

4437
has: function(attr){
@@ -366,6 +359,21 @@
366359
val = val[childAttr];
367360
if (!val) break; // at the leaf
368361
}
362+
},
363+
364+
walkThenGet: function(attributes, attrStrOrPath){
365+
var attrPath = Backbone.NestedModel.attrPath(attrStrOrPath),
366+
result;
367+
368+
Backbone.NestedModel.walkPath(attributes, attrPath, function(val, path){
369+
var attr = _.last(path);
370+
if (path.length === attrPath.length){
371+
// attribute found
372+
result = val[attr];
373+
}
374+
});
375+
376+
return result;
369377
}
370378

371379
});

0 commit comments

Comments
 (0)