Skip to content

Instantly share code, notes, and snippets.

@vikingmute
Created August 20, 2014 07:44
Show Gist options
  • Save vikingmute/6d61b1c9c7908dcc8550 to your computer and use it in GitHub Desktop.
Save vikingmute/6d61b1c9c7908dcc8550 to your computer and use it in GitHub Desktop.
backbone starter
var Player = Backbone.Model.extend({
defaults: {
"name": "James",
"kit": 10
}
});
var james = new Player();
james.on('change:kit', function(model) {
console.log("my new number is " + model.get('kit'));
});
james.set({"kit": 20});
var cr = new Player({"name":"CR", "kit":7});
var Team = Backbone.Collection.extend({
model: Player
});
var real = new Team();
real.on('add', function(player) {
console.log(player.get('name') + ' has joined the team');
});
real.add([james, cr]);
real.each(function (player) {
console.log(player.get('name'));
});
var htmlStr =
"this is <%= name %> speaking " +
"<button id='oldName'>Name</button>" +
"<button id='renewName'>Change</button>";
var PlayerView = Backbone.View.extend({
tagName: 'li',
events: {
"click #oldName": "showInfo",
"click #renewName" : "renewName"
},
template: _.template(htmlStr),
initialize: function() {
this.listenTo(this.model, "change", this.render);
},
render: function() {
this.$el.html(this.template(this.model.attributes));
return this;
},
showInfo: function() {
alert("i am nice guy: "+ this.model.get('name'));
},
renewName: function() {
this.model.set({"name": "Ozil"});
}
});
real.each(function (player) {
var playerView = new PlayerView({model: player});
$('#player-list').append(playerView.render().el);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment