次のようなサービスがあります。
(function() {
'use strict';
angular
.module('app.bookmark')
.factory('bookmarkService', bookmarkService);
function bookmarkService($http){
var url = 'api/bookmark';
bookmarkService.update = function(bookmark){
return $http.put(url + '/' + bookmark.id, bookmark);
};
return bookmarkService;
}})();
また、PUT メソッドでリクエストをインターセプトして、ID 属性なしでペイロードを送信したいと思います。これは、URL に属性が既にあるためです。
これらの関数を作成しました:
function httpInterceptor($q) {
return {
request : function(config) {
if(config.method === 'PUT'){
delete config.data.id;
}
return config || $q.when(config);
}
};
}
問題は、id属性が画面 (フォーム) で削除されていることです。ユーザーが同じレコードのデータを何度も変更して、永久に滞在したい状況を想定します。