2017-01-16 11 views
0

自分のアプリケーションに、私のデータベースに送信するプロパティと、そうでないプロパティを保持するインターフェイスがあります。HTTP経由で送信されたプロパティを無視する方法

具体それからAngular2のアニメーションstate機能をトリガopenまたはnullに設定することができるstateと呼ばれるプロパティ(閉じた状態)を維持します。私は*ngForのリストでこれを使用して、そのアイテムに関する情報のパネルを閉じることができます。

ただし、常にデフォルトのnullになっているので、私は自分のデータベースにstateの値を保存したくありません。現在、オブジェクト全体をhttp呼び出しに渡すので、stateプロパティも送信されます。代わりにどうやってそれを無視することができますか?

pushItemToDay(item: any, dateStr: Date): void { 
    let body = JSON.stringify(item); 

    let headers = new Headers({ 'Content-Type': 'application/json' }); 
    let options = new RequestOptions({ headers: headers }); 

    this.http.post(this.baseURL + 'api/addItem/' + dateStr, body, options) 
     .toPromise() 
     .catch(this.handleError); 
    } 
+3

あなたがmyObjectという[ 'PROPERTY_NAME']を削除する使用することができます送信する前に、 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/delete – rashfmnb

+0

重複したhttp://stackoverflow.com/questions/4910567/hide-certain-values-in-output- from-json-stringify :) –

答えて

3

オブジェクトが投稿の後に使用されると、削除は損害を与えます。関数stringifyには、不要なエントリを無視するための追加パラメータがあります。

let source = { 
 
    \t 'meal': 'burger', 
 
    'milkshake': 'chocolat', 
 
    'extra':'2 hot dogs', 
 
    'free': 'smile' 
 
}; 
 
let ignoreList = [ 'meal', 'extra' ]; 
 
    
 
function replacer(key,value) 
 
{ 
 
    if (ignoreList.indexOf(key) > -1) return undefined; 
 
    else return value; 
 
} 
 
    
 
let data = JSON.stringify(source, replacer); 
 
console.log(data);

関連する問題