我正在创建一个应用程序,以获得 jQuery Mobile 和主干的一些经验。我用 node.js 创建了一个“restful”API来处理我需要的数据。它适用于我在index.html中创建的所有静态页面。但是,当我需要使用来自某个id
的数据创建一个页面时,我有点迷失。
例如,当我想要显示所有项目(/项目)时,我有data-role=page
个id
个项目列出所有项目,但是当我需要转到每个项目的详细页面时( / items / 1)我想在用户想要有关项目的详细信息时创建该详细信息页面,换句话说,当用户访问网址#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>