Skip to content

Instantly share code, notes, and snippets.

@kmiyashiro
Created December 19, 2011 06:24
Show Gist options
  • Save kmiyashiro/1495695 to your computer and use it in GitHub Desktop.
Save kmiyashiro/1495695 to your computer and use it in GitHub Desktop.
backbone simple
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>Page Title</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript" charset="utf-8"></script>
<script src="http://documentcloud.github.com/underscore/underscore-min.js" type="text/javascript" charset="utf-8"></script>
<script src="http://documentcloud.github.com/backbone/backbone-min.js" type="text/javascript" charset="utf-8"></script>
</head>
<body id="" onload="">
<div id="my_models" >
</div>
<div id="my_collection">
<ul>
</ul>
</div>
<div id="name_el"></div>
<script type="text/template" id="name_view_li">
<p><%= name %></p>
</script>
<script type="text/template" id="name_template">
<p> Please Enter Your Name <input type="text" id="txt_name" /> </p>
<p><button id="btn_enter">Enter</button></p>
</script>
<script type="text/javascript" charset="utf-8">
var nameModel = Backbone.Model.extend({
defaults: { name: 'default name' }
});
name_model = new nameModel();
nameView = Backbone.View.extend({
el: '#name_el',
initialize: function() {
this.render();
},
render: function() {
this.template = _.template($('#name_template').html(), {});
$(this.el).html(this.template);
return this;
},
events: {
'click #btn_enter': 'enterClick'
},
enterClick: function() {
new_name = $('#txt_name').val();
name_model.set({
name: new_name
});
}
});
view = new nameView();
name_model_view = Backbone.View.extend({
el: '#my_models',
initialize: function() {
this.model.bind('change',this.render,this);
this.render();
},
render: function() {
console.log(this.model.toJSON());
template = _.template( $('#name_view_li').html(), this.model.toJSON());
$(this.el).append(template);
return this;
}
});
new name_model_view({ model: name_model });
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment