主干模型如何知道要使用哪个 RESTful URL
How do Backbone models know which RESTful URL to use?
我试图把我的思想包裹在Backbone上(正如我最近的一系列问题所表明的那样......特别是我正在通过这个项目工作:
https://github.com/ccoenraets/nodecellarhttp://nodecellar.coenraets.org/#
我想从概念上了解当我单击新 Wine 上的"保存"按钮时会发生什么,例如这个:
http://nodecellar.coenraets.org/#wines/506df6b6849a990200000001
我认为它是这样的:
1) 主干酒详情视图将保存按钮点击作为事件捕获并启动"保存前"方法。请参阅下面的/public/js/views/winedetails.js。
beforeSave: function () {
var self = this;
var check = this.model.validateAll();
if (check.isValid === false) {
utils.displayValidationErrors(check.messages);
return false;
}
this.saveWine();
return false;
},
saveWine: function () {
var self = this;
console.log('before save');
this.model.save(null, {
success: function (model) {
self.render();
app.navigate('wines/' + model.id, false);
utils.showAlert('Success!', 'Wine saved successfully', 'alert-success');
},
error: function () {
utils.showAlert('Error', 'An error occurred while trying to delete this item', 'alert-error');
}
});
},
在该 Save 方法(第 2 种方法)中,有一个对 this.model.save 的调用。不知何故,该模型保存方法必须向"/wines"URL发出PUT请求,如服务器.js文件所示(这是针对节点.js服务器):
app.get('/wines', wine.findAll);
app.get('/wines/:id', wine.findById);
app.post('/wines', wine.addWine);
app.put('/wines/:id', wine.updateWine);
app.delete('/wines/:id', wine.deleteWine);
从那里显然它运行在routes/wines.js中定义的addWine方法。我不明白的是模型如何理解将请求发送到哪个 URL。我找不到任何地方将 model.save 方法与正确的 REST API 链接起来。我的问题有意义吗?
等等,我可能已经回答了我自己的问题。它必须是以下行:/public/js/models/models.js
urlRoot: "/wines"
然后 Backbone 知道你是否正在做一个"新"模型,它必须发送一个 POST 请求。如果您正在进行更新,则必须将 :id 附加到 URL 并发送 PUT 请求等。是这样工作的吗?
以下是模型 urlRoot 的文档 http://backbonejs.org/#Model-urlRoot:
如果您在模型上指定了urlRoot
,它将使用该。如果模型是集合的一部分,它将引用集合上的 url 属性。
保存时,Backbone 将使用 PUT 进行更新,使用 POST 进行创建。它根据 isNew 函数的结果确定应该使用哪个。这将检查模型是否具有 id 属性。
- 如何使用url加载程序在webpack中导入多个图像
- 使用php或javascript从facebook相册URL中删除多余的部分
- Angular JS IE9 Hashbang url rewriting
- JavaScript下拉菜单-点击按钮并根据所选值重定向到url
- 直接下载文件,而不是从window.open(url)
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 通过js在新选项卡中有条件地打开url
- CKFinder 3为所选文件返回错误的URL
- 如何获取不属于我项目的上一页的URL
- ReactJS映射:如何仅在url变量不为空时呈现html链接
- 在URL中传递JS对象
- 将纯文本URL转换为可单击链接
- Javascript html每点击一次就会更改url
- 以角度管理动态URL
- Mathias URL shortener
- 主干模型如何知道要使用哪个 RESTful URL
- 如何将RESTful API映射到BackboneJS模型和集合中的URL
- jQuery -提交表单到RESTful URL
- POST on JAVA Restful WebService URL from JavaScript
- Backbone中用于RESTful交互的集合的URL