gpt4 book ai didi

javascript - Backbone 模型如何知道要使用哪个 RESTful URL?

转载 作者:行者123 更新时间:2023-11-30 17:52:31 25 4
gpt4 key购买 nike

我正试图将注意力集中在 Backbone 上(正如我最近的一连串问题所表明的...)。特别是我正在完成这个项目:

https://github.com/ccoenraets/nodecellar http://nodecellar.coenraets.org/#

我想从概念上理解当我点击新 Wine 上的“保存”按钮时会发生什么,例如这个:

http://nodecellar.coenraets.org/#wines/506df6b6849a990200000001

我认为它是这样的:

1) Backbone winedetails View 捕获保存按钮点击事件并启动“保存前”方法。请参阅下面的/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 方法(第二种方法)中调用了 this.model.save。某种程度上,模型保存方法必须向 server.js 文件中证明的“/wines”URL 发出 PUT 请求(这是针对 node.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: "/ Wine "

然后 Backbone 知道如果您正在做一个"new"模型,它必须发送一个 POST 请求。如果您正在进行更新,它必须将 :id 附加到 URL 并发送 PUT 请求等。它是如何工作的?

关于javascript - Backbone 模型如何知道要使用哪个 RESTful URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18704132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com