2016-04-19 5 views
1

私のアプリでは、angular.jsを使用しています。オブジェクトjavascriptから関数を削除する方法

は、私はこのように、3つのプロパティで(PUT要求経由)オブジェクトを送信する必要があります。

var item = { 
    a: 1, 
    b: 2, 
    c: 3 
} 

をしかし、私はconsole.log(item)を行う際に、そのような$deleteを通り、私は必要としない多くの情報を表示します、$getなど。このように:

{ 
    ... 
    $delete: function (params, success, error), 
    $get: function (params, success, error), 
    ... 
    a: 1, 
    b: 2, 
    c: 3 
} 

私はそれがjavascriptの約束か何かだと思います。
ab、およびcのみを取得する方法はありますか?たぶんロダシ?


マイソリューション:

var valuesToPick = ['title', 'languageCode', 'jobTitle', 'location','economySegment', 'companyDescription' ...]; 

var item = _.pick(vm.form, valuesToPick); 

おかげで、
ホルヘ

+0

'$ resource'や' $ http'オブジェクトにデータを置いているようですが、新しいオブジェクトにデータを置いてみましたか?var item = {}; item.a = 1; 'など –

+0

私はたくさんのプロパティを持っていますが、これは単なる例であり、それは20個あります。私はこの20回のように行きたくありません:D。 – jBaumann

+1

私はあなたの解決策を実際の回答として追加し、将来のSOユーザのために正しいとマークします – Chris

答えて

0

私はこのようなlodash_.pick使用:

var valuesToPick = ['title', 'languageCode', 'jobTitle', 'location','economySegment', 'companyDescription' ...]; 

var item = _.pick(vm.form, valuesToPick); 

アイテムは、今ちょうどあなたの情報機能の自由です。

2

彼らはitemが所有していない、Objectから継承されます。

は、私はこのようなlodashを使用しました。

独自のプロパティを反復処理する場合は、for ... inループを使用してください。

for (property in item) { 
    item[property]; 
} 
+0

オブジェクトの周りのすべての機能、プロパティ、すべてのものをループします。私はついに** lodash ** '_.pick'と一緒に行ったが、とにかく感謝している。私は何かを学んだ。 – jBaumann

1

これは完璧なソリューションではありませんが、それは動作するはずです:

の代わりに:

submitFunction(object, function() {}) 

行います

submitFunction(JSON.parse(angular.toJson(object)), function() {}) 

あなたにそれを分割することができます。

var cleanObject = JSON.parse(angular.toJson(object)) 
submitFunction(cleanObject, function() {}) 
関連する問題