• function

isDirty can/observe/backup

 

Check whether an Observe has changed since the last time it was backed up.

observe.isDirty([deep])

Parameters

  1. deep=false {bool}Optional

    whether to check nested Observes

Returns

{bool}

Whether the Observe has changed since the last time it was [can.Observe.prototype.backup backed up]. If the Observe has never been backed up, isDirty returns undefined.

isDirty checks whether any properties have changed value or whether any properties have been added or removed since the last time the Observe was backed up. If deep is true, isDirty will include nested Observes in its checks.

var recipe = new can.Observe({
  title: 'Pancake Mix',
  yields: '3 batches',
  ingredients: [{
    ingredient: 'flour',
    quantity: '6 cups'
  },{
    ingredient: 'baking soda',
    quantity: '1 1/2 teaspoons'
  },{
    ingredient: 'baking powder',
    quantity: '3 teaspoons'
  },{
    ingredient: 'salt',
    quantity: '1 tablespoon'
  },{
    ingredient: 'sugar',
    quantity: '2 tablespoons'
  }]
});

recipe.isDirty();     // false
recipe.backup();

recipe.attr('title', 'Flapjack Mix');
recipe.isDirty();     // true
recipe.restore();
* recipe.isDirty();   // false

recipe.attr('ingredients.0.quantity', '7 cups');
recipe.isDirty();     // false
recipe.isDirty(true); // true

recipe.backup();
recipe.isDirty();     // false
recipe.isDirty(true); // false