Example of Backbone.previous() behavior

by jamesdh

HTML

<script src="http://documentcloud.github.com/underscore/underscore.js"></script>
<script src="http://backbonejs.org/backbone.js"></script>
<div id="result">
    <div> <b>Results:</b>

    </div>
</div>

CSS

body {
    white-space: pre;
    font-family: monospace;
}
#result {
    margin-left: 10px;
}

JavaScript

$(document).ready(function () {
    function displayResult(r) {
        var resultDiv = $("#result");
        resultDiv.append(r + "\n");
    }

    var bill = new Backbone.Model({
        name: "Bill Smith"
    });

    bill.on("change:name", function (model, name) {
        displayResult("In change handler: " + bill.previous("name"));
    });

    bill.set({
        name: "Bill Jones"
    });
    displayResult("Outside change handler: " + bill.previous("name"));
    
    bill.set({
        name: "Bill Jones"
    });
    displayResult("Outside change handler: " + bill.previous("name"));

});