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