Backbone を使い始めたばかりで、目標はシンプルなスライドキャスティング アプリケーションです。私はRESTインターフェースを持っています
/slidecasts
利用可能なすべてのプレゼンテーションのリストを取得します。返される json は次のようになります。
[
{
"name": "p75-barth.pdf",
"nr": 1,
"slideLinks": [
"slides/0",
"slides/1",
]
}]
単一のプレゼンテーションにアクセスして、たとえば最初のスライドを取得したい場合は、次のように簡単に実行できます。
slidecasts/1/slides
戻り値:
[
{
"content": null,
"imageLinks": [
"images/1"
],
"nr": 0,
"title": null
}
]
プレゼンテーションとスライドをバックボーン モデルとして表現したいと考えています。また、最後にスライド画像、タイトル、いくつかのメモ、および進む/戻るボタンを表示するバックボーン ビューも必要です。
これはこれまでの私のコードです:
$(function (){
initModel();
initCollection();
initView();
var testSlidecast = new Slidecast();
testSlidecast.id=1;
testSlide = new Slide();
testSlide.id = 5;
testSlidecast.Slide = testSlide;
var slideView = new SlideView(({model: testSlidecast}));
})
function initView(){
SlideView = Backbone.View.extend({
el: $("#presentation"),
initialize: function(){
this.render();
alert("asd")
},
render: function(){
var variables = { presentation_name: "This is a Test-Slide-Name" };
var template = _.template( $("#slide_template").html(), {} );
this.el.html( template );
}
});
}
function initModel(){
Slide = Backbone.Model.extend({
});
}
function initCollection(){
Slidecast = Backbone.Collection.extend({
model: Slide,
url: function(){
return 'slidecasts/' + this.id + '/slides'
}
});
}
これはコレクションに対して機能しますが、そこから単一のスライドの情報を取得する方法がよくわかりません。slidecast.slide("0") のようなものは可能ですか?
また、ビューのテンプレートに関していくつかの問題があります。
私のhtmlは次のようになります:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<link href="style.css" rel="stylesheet"/>
<script src="http://underscorejs.org/underscore-min.js" > </script>
<script src="http://code.jquery.com/jquery-1.7.2.min.js" > </script>
<script src="http://backbonejs.org/backbone-min.js" > </script>
<script src="bscript.js" > </script>
</head>
<body>
<div id="presentation"> </div>
<script type="text/template" id="slide_template">
<label>Presentation <%= presentation_name %> </label>
<img src="" id="slide_pic" />
<input type="text" id="slide_content" value="asd" />
</script>
</body>
</html>
ビューで変数を定義したにもかかわらず、テンプレート *presentation_name* に渡したい変数名が定義されていないというエラーが表示され続けます。