jQuery Mobileとbackboneの経験を積むためのアプリケーションを作成しています。必要なデータを処理するnode.jsを使用して、「安らかな」API を作成しました。index.html で作成したすべての静的ページで問題なく動作します。しかし、特定のデータを使用してページを作成する必要がある場合id
、少し迷っています。
たとえば、すべてのアイテム (/items) を表示したい場合、すべてのアイテムを一覧表示するdata-role=page
with id
items がありますが、各アイテム (/items/1) の詳細ページに移動する必要がある場合は、いつでもその詳細ページを作成したいと考えています。ユーザーがアイテムの詳細を知りたい場合、つまり、ユーザーが URL スポット #3 にアクセスした場合などです。
これは可能ですか?
私のルーター: モデルは必要なすべてのデータを提供してくれます
Spoter.Router = Backbone.Router.extend({
routes: {
"": "",
"spot#:id": "spotDetails"
},
//Details on a certain spot with id
spotDetails: function(id) {
var spotDetailsContentDiv = Spoter.spotDetailsContent;
spotDetailsContentDiv.empty();
var spot = new Spoter.spotModel({id: id});
spot.fetch({
successCallback: function(data) {
var spotDetailsView = new Spoter.spotDetailsView({
model: data
});
spotDetailsContentDiv.html(spotDetailsView.render().el);
}
});
}
});
意見:
Spoter.spotDetailsView = Backbone.View.extend({
render:function () {
this.$el.html(this.template(this.model));
return this;
}
});
アンダースコア付きのテンプレート
<ul data-role="listview" data-theme="c" data-inset="true">
<li>
<a href="#">
<h1><%= this.model.name %></h1>
<p><%= this.model.description %></p>
</a>
</li>
</ul>