Backbone extend model

add new function to model

by ctasims

HTML

<script src="http://ajax.cdnjs.com/ajax/libs/underscore.js/1.1.4/underscore-min.js"></script>
<script src="http://ajax.cdnjs.com/ajax/libs/backbone.js/0.3.3/backbone-min.js"></script>

JavaScript

Backbone.Model.prototype.unsetAllStartsWith = function(prefix) {
    var that = this;
    _.each(this.attributes, function(attrVal, attrName) {
      console.log('each');
      if (attrName.slice(0,prefix.length) === prefix) {
          that.unset(attrName);
      }
  })
};

var MyModel = Backbone.Model.extend({
    defaults: {
        'foo_first': '',
        'foo_second': ''
    }
});

var testModel = new MyModel();
console.log('first');
console.log(testModel.get('foo_first'));
console.log(testModel.get('foo_second'));
testModel.set({'foo_first': 'new value', 'foo_second': 'new value'});

testModel.unsetAllStartsWith('foo');
console.log(testModel.get('foo_first'));
console.log(testModel.get('foo_second'));