我有一個子資源,它將擁有與其相關的全套方法。我開始實施創建(我有後端工作)。基本上我希望能夠用這種結構使用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