2016-09-11 13 views
0

プロファイルを更新するAPIを使用しています。リクエストパラメータにニックネーム、電子メール、電話番号またはパスワードを追加することにより、それぞれがデータベースで更新されます。私がやりたいAngularJSの動的httpポストパラメータ名

{ 
"email": "[email protected]", 
"device_id": "chrome", 
"device_model": "browser", 
"device_os": "angularJS" 
} 

{ 
"nickname": "alifa", 
"device_id": "chrome", 
"device_model": "browser", 
"device_os": "angularJS" 
} 

または電子メールを更新する:私はニックの名前を更新したいとき、例えば、ユーザの選択に応じてこれらのいずれかを毎回渡したい

これは、プロパティ名とプロパティの値を関数に渡すことで、オブジェクトを作成し、HTTP POST要求を送信します。

this.updateDetails = function(dataName, dataValue){ 
    Loader.global.show(); 
    var data = $.param({ 
    device_id: app.device_id, 
    device_os: app.device_os, 
    device_model: app.device_model 
    }); 
    data[dataName] = dataValue; 
    console.log(data); 
    return $http.post(app.baseUrl + 'profile/' , data).success(function(){ 
    Loader.global.hide(); 
    }).error(function(){ 
    Loader.global.hide(); 
    }) 
} 

しかし何それは、サーバーに送信するだけです:

Sent data

これを行うには、すべての可能な方法はありますか?

答えて

1

paramに渡すオブジェクトを変更する必要があります。 paramから抜ける文字列にプロパティを追加するのは無意味です。

var data = { 
    device_id: app.device_id, 
    device_os: app.device_os, 
    device_model: app.device_model 
}; 
data[dataName] = dataValue; 
var encoded_data = $.param(data); 
関連する問題