我有一个子资源,它将拥有与其相关的全套方法。我开始实施创建(我有后端工作)。基本上我希望能够用这种结构使用restangular子资源
http://127.0.0.1:8000/rest/parent_resource/<parent_id>/child_resource/
哪里是一个整数字段标识父对象的工作。例如:
http://127.0.0.1:8000/rest/parent_resource/87/child_resource/
出于安全原因,我不想将集合作为一个整体呈现给最终用户。因此,obj.child_resource = [{blah}]不是我正在考虑的方法。 parent_resource /集合由一个用户拥有,并且可以从可以更新/删除他们对集合的贡献的其他用户对集合进行贡献(创建)。
我失去了如何设置这与restangular。我想摆弄这一点,但我不认为我的附加标识符URI是正确的前进方式:
app.factory('ParentResource', function (Restangular) {
return {
getList: function() {
return Restangular.all('rest/parent_resource').getList()
}
, get: _.memoize(
function (id) {
return Restangular.one('rest/parent_resource', id).get()
})
, createChild: function(parentId, field_1, field_2) {
var newChild = {
"field_1": field_1
, "field_2": field_2
}
return Restangular.all('rest/parent_resource/' + parentId + '/childResource').post(newChild)
}
}
})
用法会是这样的
ParentResource.get(87).then(function(parentObj){
parentObj.createChild(1,2)
})
一个旁注:'我不想将整个系列展示给最终用户 - 它被称为'通过默默无闻的安全'。如果收集ID是如此敏感的数字 - 考虑用随机散列替换它(与后端的收集ID相关联)。否则,可以通过迭代收集ID来查找现有ID – borisano