Module 2: Views > Combining Views & Models

by emgee

HTML

<script src="http://documentcloud.github.com/underscore/underscore.js"></script>
<script src="http://documentcloud.github.com/backbone/backbone.js"></script>

JavaScript

var RefreshingView = Backbone.View.extend({
    initialize: function(){
        this.model.on("change", function(){
            this.render();
        }, this); // sets context for event handler
    },
    render: function(){
        this.$el.html(this.model.get("text"));
    }
});

var m = new Backbone.Model({text: new Date().toString()});
var v = new RefreshingView({model:m, el: "body"});
v.render();

setInterval(function(){
    m.set("text", new Date().toString());
}, 1000);