0

$resource で angularjs 1.2.0 を使用しています。オブジェクト全体をサーバーに送信するのではなく、一部のフィールドのみを送信し、場合によってはまったくデータを送信しない PUT/POST インスタンス アクションが必要です。

出来ますか?あちこち探したけど何も見つからなかった

アップデート:

DELETE リクエストでも発生します。

このコードを考えると:

group.$deleteChatMessage({messageId: message.id}, function(){
    var i = _.indexOf(group.chat, message);
    if(i !== -1) group.chat.splice(i, 1);
});

リクエストはこれです:

ここに画像の説明を入力

モデル全体がどのように送信されるかを確認します (「リクエスト ペイロード」の下)。

これはリソースです:

    var Group = $resource(API_URL + '/api/v1/groups/:gid',
      {gid:'@_id', messageId: '@_messageId'},
      {
        deleteChatMessage: {method: "DELETE", url: API_URL + '/api/v1/groups/:gid/chat/:messageId'},
      });
4

2 に答える 2

3

これは私のために働く:

$resource(SERVER_URL + 'profile.json',
{},
{
    changePassword :
    {
        method : 'POST',
        url : SERVER_URL + 'profile/changePassword.json',

        // Don't sent request body
        transformRequest : function(data, headersGetter)
        {
            return '';
        }
    }
});

transformRequest 関数に独自のコードを実装することで、サーバーに送信される内容を正確にカスタマイズできます。この例では、REST クライアントに新しい関数を追加していましたが、既存の関数を上書きすることもできます。「transformRequest」はバージョン 1.1 以降でのみ使用できることに注意してください。

于 2013-11-06T20:31:37.577 に答える
0

具体的には $http を使用できます。ただし、役立つ可能性のあるプロジェクトに使用するケースが 1 つあります。また、私の例ではサーバーから配列を返していますが、それは変更できます。

私のサービスでは:

app.factory('mySearch', ['$resource', function($resource) {
    return $resource('/api/items/:action', {}, {
        search: { method: 'POST', isArray: true,
            params: { action: 'search' }
        }
    });
}
]);

私のコントローラーで:

サーバーに投稿するカスタム パラメータを作成できます。または、ユーザーが選択したテーブル行から必要なフィールドが 2 つだけの場合です。

        var one = "field_one";
        var two =  "field_two";
        $scope.search({one: one, two: two});

次に、イベントを通じてそれらを投稿し、カスタム パラメータを渡すことができます

    $scope.search = function(customParams) {
    mySearch.search({query: customParams}, function(data) {
        $scope.items = data;

    }, function(response) {
        console.log("Error: " + response.status);
    })
};

うまくいけば、これはいくつかの助けになりました。これが探しているものに近いかどうかお知らせください。さらにお手伝いできます。

役職 ここに画像の説明を入力

消去 ここに画像の説明を入力

于 2013-11-02T10:37:44.697 に答える