私はAngularJSを持っています$resource
:
App.factory("pjApi", ["$resource", function($resource) {
return $resource("/api/:user/:action/:post_id/", {action:"posts"});
}]);
私のコントローラーでは、基本的に次のように使用します。
$scope.deletePost = function(post_id) {
$scope.posts.forEach(function(post) {
if (post_id === post.id)
post.$delete({user:"tjb1982",action:"delete",post_id:post.id});
});
}
サーバーは、ステータス200、application / json、およびbody:"1"の応答を返します。
Angularがこの応答で行うことは、Resourceオブジェクトの削除されたインスタンスを削除することですが、Angularは、作成または更新しているかのように、サーバーからの応答(つまり、「1」)に置き換えます。
posts
[Resource { 0="1", $$hashKey="00D", $get=function(), more...}]
等
そのため、私のテンプレートはこの新しい(ほとんど空白の)情報で更新されます。これは私が避けようとしていることです。サーバーまたは「0」から何も返さないようにしました。何も返さないと、Resourceインスタンスが完全に保持され、「0」を返すと「1」を返すのと同じ結果になります。
テンプレートが正しくレンダリングされるようにこのリソースインスタンスを完全に削除するために、Angularはどのような応答を探していますか?