ダウンロード
		Backbone.js を下記URLからダウンロードします。
		また Backbone.js は Underscore.js, jQuery に依存しますので合わせてダウンロードしましょう。
	
Backbone.js
Underscore.js
		Backbone.js 1.0.0
		Underscore.js 1.5.1
		jQuery 1.8.2
		を使用します。
	
ダウンロードしたら読み込みます。
html
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> <script src="js/lib/underscore-min.js"></script> <script src="js/lib/backbone-min.js"></script> <script src="js/app.js"></script>
		app.js はこれから作るアプリケーションのファイルなので新たに作成します。
		下記のようにして jQuery を使用できるようにします。
	
app.js
	(function($){
    //ここにコードを書く
	})(jQuery);
	
やること
		準備ができたので早速使ってみましょう。
		今回はjsonで取得したデータを、単純にリストで表示するということをやってみます。
	
		Backbone.js は大きく別けると Model、Collection, View, Router の要素で構成されています。
		Model はデータの取得や保存などを行います。Collection は Model の集合で、View ではDOMの操作やイベントの設定など行います。
		今回は Router は使用しません。
	
Model
		最初に Model を作成します。
		app.js に下記を記述します。
	
app.js
    var User = Backbone.Model.extend({
        defaults: {
            'name': '',
            'age': 0
        }
    });
	
	
		defaults に name, age を設定します。これは値がない時に設定される値です。
		あと入力するアプリケーションでしたら validate を設定しますが、今回は表示するだけなので省略します。
	
Collection
続いて Collection です。
app.js
	var Users = Backbone.Collection.extend({
        model: User,
        url: 'data.json'
    });
	
	
		model プロパティで User モデルに関連付けします。
		今回はjsonデータを読み込みますので、urlに指定します。
		data.json は下記の構造にします。
	
data.json
	[
		{
			"name": "田中", "age": "10"
		},
		{
			"name": "山田", "age": "16"
		},
		{
			"name": "内田", "age": "32"
		}
	]
	
View
最後に View です。
app.js
	var UserView = Backbone.View.extend({
		el: $('#view'),
		initialize: function(){
			this.collection = new Users();
			this.collection.fetch({
				error:  $.proxy(this.error, this),
				success: $.proxy(this.render, this)
			});
		},
		render: function(){
			_(this.collection.models).each(function(item){
				this.appendItem(item);
			}, this);
		},
		appendItem: function(item){
			var user = {
				name: item.get('name'),
				age: item.get('age')
			};
			$(this.el).append(this.template(user));
		},
		error: function() {
			$(this.el).append(this.template({name: '取得できませんでした。'}));
		},
		template: _.template("<li><%= name %> <% if(typeof(age) != 'undefined'){ %>(<%= age %>)<% } %></li>")
	});
    var staffView = new UserView();
	
	
		initialize はインスタンス作成時に実行される関数です。
		collection.fetch で json を読み込み成功したら render を実行し append で要素を追加しています。
		html に el で指定した要素を作成します。
	
html
<ul id="view"></ul>
とまあ、これくらいの規模だとただ冗長なだけな気がしますが、入力欄を作ってサーバーとやりとりがでてくるアプリケーションならメリットがあるのかなとか。
