2017-04-10 2 views
0

こんにちは、私は私の変更機能を発火させるが、私の問題は、私はすべてを削除したくない私はオブジェクト内の1つの項目を除外したいと思う。オブジェクトからの除外角度変更

function change() { 
      if (vm.location.type) { 
       angular.forEach(vm.location, function (value, index) { 
        delete vm.location; 

       }); 

      } 

     } 

ので、私は

vm.location.type 

vm.location 

   vm.location.boundaries; 
       vm.location.region; 
       vm.location.address; 
       vm.location.name; 
       vm.location.nonVisitingRadius; 
       vm.location.visitingRadius; 
+0

私はあなたが何をしようとしているのか分かりませんが、オブジェクトから1つのキーを削除したい場合は、次のようにしてください: 'vm.location.region;' –

+0

私がしようとしているのは、 vm.locationしかし私はまだそれが必要なのでvm.location.typeを削除したくありません –

答えて

0

あなたが尋ねていることを正しく理解しているかどうかは分かりませんが、オブジェクトのすべてのフィールドをクリアし、タイプを保持し、プレーンなjavascirpt(ライブラリなし)でオブジェクトの参照を保持したい場合は、フィールドをチェックし、iフィールドがtypeと等しいかどうかを確認します。デフォルト値を保持します

var defaultModel = { 
location: { 
    region: '', 
    address: '', 
    name: '', 
    nonVisitingRadius: '', 
    visitingRadius: '', 
    type: 'defaultvalue' 
} 
} 

とNG-変更が関数の内部でトリガされ

_.extend(model, defaultModel); 

:あなたのようなデフォルトのモデルを定義することができunderscore.jsと

for(var i in model.location){ 
if(i !== 'type') 
    delete model[i]; 
} 

他のすべてをクリアしてください。

+0

ありがとうあなたが言ったことは働いています。 for(i!vm.location){ if(i!== 'type') 削除vm.location [i]; } –

+0

あなたは大歓迎です:) – Karim

1

、以下のコードを参照してくださいを持って削除したくありませんしたがって
var obj = { a:123, b:123, c:123 } 
delete obj.a; 

objがこの{B:123、C:123}のようになる

注:いけないループのいずれかのオブジェクトから

更新回答プロパティを削除する必要があります

var obj= { 
    a: 'aaa', 
    b: 'bbb', 
    c: 'ccc', 
    d: 'ddd' 
}; 

var removeObj = function(obj, props) { 

    for(var i = 0; i < props.length; i++) { 
     if(obj.hasOwnProperty(props[i])) { 
      delete obj[props[i]]; 
     } 
    } 

}; 

removeObj (obj, ["a", "d"]); 
+0

私はこれを理解していますが、私のobjが私は90行を削除するために書き込むだろう。 –

+0

@HeshamElMasryあなたのプロジェクトにlodashを使用していますか?もしそうなら、_.emit(obj、['a'、 'b'])を使うことができます – Srigar

+0

私の更新された回答を参照してください、それを受け入れる場合 – Srigar

0

一時オブジェクトでこれを行うことができます。

let tempLocation = {}; 
tempLocation.type = $scope.location.type; 
$scope.location = tempLocation; 
関連する問題