Created
August 20, 2014 07:44
-
-
Save vikingmute/6d61b1c9c7908dcc8550 to your computer and use it in GitHub Desktop.
backbone starter
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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