var LinksView = View.extend({ el: "#links", events: { "click a": function(){ }, }, template: $("#link-template").html(), initialize: function(){ app.socket.on("link", this.prepend.bind(this)) }, show: function(){ $.getJSON("/_irc/links", function(data){ data.forEach(this.append.bind(this)) }.bind(this)) }, render: function(data){ var media = Parser.tokenize(data.url) var tmpl = this.template.replace(/{{type}}/, media.type) .replace(/{{text}}/, media.text) .replace(/{{url}}/, media.url) .replace(/{{nick}}/, sanitize(data.nick)) return tmpl }, prepend: function(data){ var html = this.render(data) this.$el.prepend(tmpl) }, append: function(data){ var html = this.render(data) this.$el.append(tmpl) }, loadMembers: function(){ this.queue.forEach(this.appendMember.bind(this)) }, })