如何使用骨干模型从服务器获取单本书详细信息
How to get single book details from server using backbone model?
我正在使用骨干创建简单的书库.js。功能非常简单。
1.) 获取所有书籍2.)获取特定书籍(从服务器)3.) 展示书籍
从收藏中,我可以得到所有的书。但是如何使用模型从服务器获取单本书?我需要对服务器进行 ajax 调用以获取书籍详细信息。因为细节可能很快就会更新(我不想从所有书籍收藏中获取它)
到目前为止,我创建了视图,模型,集合,如下所示
var Book: Backbone.Model.extend({
defaults:{
name: "",
id: ""
}
});
var Library: Backbone.Collection.extend({
model: Book,
url: function(){
return "/books";
},
fetchBooks: function(){
fetch({
success: success_callback,
error: error_callback
});
},
fetchBook: function(bookId){
//how to get single book ?
}
});
如何使用现有模型和集合从服务器获取单个项目?
如果需要在集合范围之外使用模型,则需要指定 urlRoot 属性:
var Book: Backbone.Model.extend({
defaults: {
name: ""
// ** See Note on Defaults below ...
},
urlRoot: "/books"
});
之后,您可以使用给定的 ID 初始化模型并对其进行fetch
:
fetchBook: function(bookId){
var book = new Book({ id: bookId });
book.fetch({
success: function() {
console.log('Received book: ' + book.toJSON());
}
});
}
这将导致对"/books/{id}"的GET
请求。 假设服务器返回 JSON,则所有结果都将填充为 book 实例上的属性。
** 关于默认值的注意事项:您绝对不应该将id
默认值设置为空字符串,因为 Backbone 使用是否存在id
来确定模型是否已保存在服务器上。 例如,如果您曾经使用model.save(...)
,如果id
不存在,Backbone 将发出 POST,如果id
确实存在,则会发出 PUT。
相关文章:
- 从服务器获取数据并在选择控件中使用ng选项无法显示选项
- 事件循环的MEAN.JS setInterval进程(从另一个服务器获取数据)
- 使用ReactJS和Flux架构从服务器获取数据的正确方法是什么
- 我在哪里从 React Redux 应用程序中的服务器获取初始数据
- 从服务器获取并传递给浏览器以在 Javascript 中格式化的日期时间格式
- Fetch Api无法从PHP服务器获取会话
- 如何从Python服务器获取到Javascript客户端
- jQueryUI FullCalendar:从服务器获取事件后的回调
- 从服务器获取数据,并使用$http服务和ng-change在select事件上显示它
- 无法从服务器获取json数据
- 将从服务器获取的数据加载到输入文本表单中
- javascript如何从服务器获取文件夹中文件的url
- 如何从外部服务器获取JSON
- angularjs设计模式和从服务器获取数据的最佳实践
- 使用Jquery和Ajax从服务器获取值的跨域Ajax请求
- 如何在从服务器获取数据的动态表的每一行中添加下拉列表
- 使用Angular从服务器获取数据
- 使用AngularJS从服务器获取计算结果
- AngularJS web客户端可以't从Scala Play服务器获取资源
- 在我的谷歌自定义搜索引擎从服务器获取数据后,我如何激发一些javascript代码