使 Restangular .remove() 与 Rails 浅层路线一起工作
Make Restangular .remove() work with Rails Shallow Routes
说,我有如下嵌套资源,
shallow do
resources :aalu do
resources :pyaj
end
end
使用 restangular 我使用以下 Restangular
调用
根据需要获取资源
all_pyaj = Restangular.one('aalu', $stateParams.aaluId).all('pyaj').getList();
pyaj
是 all_pyaj
数组的一个元素,我使用 ng-repeat 得到它。
现在,当我想使用 remove()
方法使用 Restangular 删除资源时,
pyaj.remove()
对 /aalu/:aalu_id/pyaj/:pyaj_id
进行 DELETE 调用
我希望它对 /pyaj/:pyaj_id
进行 DELETE 调用,并从 angular $scope 中删除资源。
我可以通过以下方式实现,
Restangular.one('pyaj', payj.id).remove().then(
function (response) { /* Problem: Delete this pyaj from $scope */ }
我可以让 Restangular 对 /pyaj/:pyaj_id
进行 DELETE 调用并从 angular $scope 中删除资源吗?
Restangular 如何处理浅路线?
您应该使用 RestangularProvider.setParentless(['pyaj']);
配置 Restangular,以告诉它任何 pyaj
对象都应该是 "shallow"。参见 https://github.com/mgonto/restangular#setparentless。
说,我有如下嵌套资源,
shallow do
resources :aalu do
resources :pyaj
end
end
使用 restangular 我使用以下 Restangular
调用
all_pyaj = Restangular.one('aalu', $stateParams.aaluId).all('pyaj').getList();
pyaj
是 all_pyaj
数组的一个元素,我使用 ng-repeat 得到它。
现在,当我想使用 remove()
方法使用 Restangular 删除资源时,
pyaj.remove()
对 /aalu/:aalu_id/pyaj/:pyaj_id
我希望它对 /pyaj/:pyaj_id
进行 DELETE 调用,并从 angular $scope 中删除资源。
我可以通过以下方式实现,
Restangular.one('pyaj', payj.id).remove().then(
function (response) { /* Problem: Delete this pyaj from $scope */ }
我可以让 Restangular 对 /pyaj/:pyaj_id
进行 DELETE 调用并从 angular $scope 中删除资源吗?
Restangular 如何处理浅路线?
您应该使用 RestangularProvider.setParentless(['pyaj']);
配置 Restangular,以告诉它任何 pyaj
对象都应该是 "shallow"。参见 https://github.com/mgonto/restangular#setparentless。