Backbone.js Model previous method not working?

backbone.js, javascript

Solution

The `previous` method is only useful while a `"change"` event is happening:

previous `model.previous(attribute)`

During a `"change"` event, this method can be used to get the previous value of a changed attribute.

The `previous` method is only useful inside a `"change"` event handler; similar things apply to `hasChanged`, `changedAttributes`, and `previousAttributes`.

You're trying to use `previous` when you're not inside an event handler so you get nonsense. If you want to know what has changed in a model and you need to know outside of `"change"` event handlers, then you'll have to track it yourself.

Problem

Strangely I noticed that the model previous method is not working the way I thought.. it keeps returning the same value as the get. I think that something is wrong with my code or backbone.js is not upgrading the this._previousAttributes when change event is fired. ``` model = new Backbone.Model() model.set({attr1: 123}) alert(model.previous("attr1")) //alert 123 instead of undefined alert(model.get("attr1")) model.set({attr1: 312}) alert(model.previous("attr1")) //alert 321 instead of 123 alert(model.get("attr1")) ``` http://jsfiddle.net/wLKBk/ What am I doing wrong?

Original source