使 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();

pyajall_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