我正在使用backbone.js和Apache-CXF Rest-ful webservice。
我有节点的树状结构(父子关系)。
用户可以从前端(UI)为任何节点创建子级。
那时我想做什么REST电话?
选项:
PUT(更新)父请求,我可以调用更新父级,到后端。
POST(创建)子请求,我可以调用后端创建子项。
我的疑问是,我想使用这两个电话或者有更好的方法吗?
var TreeModel = Backbone.Model.extend({
defaults : {
id : undefined,
name : "",
children : []
},
urlRoot : '/api/tree'
});
是我的模特。
在我使用的js代码中:
var parent = new Treemodel();
..... (some operations) .....
var child1 = new Treemodel();
child1.save();
parent.children.push(child1);
parent.save();
有没有更好的方法?
答案 0 :(得分:1)
如果它适合你,你的方法看起来并不坏。
我想到的另一个选择(虽然不比你的好)只是将子节点保存到服务器然后fetch()
父节点。这简化了客户端代码逻辑。
代码就像这样:
var parent = new Treemodel();
[...]
var child1 = new Treemodel();
child1.save({
success: function () {
parent.fetch();
}
});
在任何情况下,我建议您通过添加“成功”回调来仅在子项创建成功时保存父项。您的代码将如下所示:
var parent = new Treemodel();
[...]
var child1 = new Treemodel();
child1.save({
success: function () {
parent.children.push(child1);
parent.save();
}
});