2016-12-23 2 views
0

Ich habe ein Array vm.settings.tab_permissions, in dem, wenn Rolle gleich vm.heading ist, muss ich es durch vm.data ersetzen, wenn nicht Rolle, die ich vm schieben möchte. Daten zu vm.settings.tab, aber mit meinem Code Duplikate werden eingefügt, ich weiß, dass ich falsch geschrieben habe. Kann jemand mir helfen. Danke.

$.each(vm.settings.tab_permissions,function(i, v){ 
if(v.role === vm.heading){ 
       v = vm.data; 
      }else { 
      vm.settings.tab_permissions.push(vm.data); 
      } 
      }); 
+1

in Winkel nicht verwenden '$. jeder 'Gebrauch' angular.foreach' – Viplock

+0

Hallo viplock, ok aber können Sie meinen Code entsprechend der erwähnten Bedingung ändern. – MMR

+0

überprüfen Sie die Antwort! – Viplock

Antwort

1
angular.forEach(vm.settings.tab_permissions, function (v, i) { 
      if(v.role === vm.heading){ 
       v = vm.data; 
      }else { 
       vm.settings.tab_permissions.push(vm.data); 
      } 
     }); 
0

In Winkel Verwendung angular.foreach wie-

angular.forEach(vm.settings.tab_permissions,function(value, key){ 
    if(value.role === vm.heading){ 
      value = vm.data; 
     }else { 
     vm.settings.tab_permissions.push(vm.data); 
     } 
     }); 

Überprüfen Sie die Reihenfolge der Parameteränderung in Funktion, hält es Wert zuerst, dann Taste

+0

Mein Problem ist, ich habe vm. Überschrift als 'Agenten', die an vierter Stelle in vm.settings.tab_permissions liegt, was bedeutet, dass Ahents gedrängt wird? Was ein doppelter Fall ist. – MMR

+0

was meinst du mit "während ahents gedrängt wird",? Bitte erläutern Sie mit einem Beispiel – Viplock

+0

Die Daten der Agenten sollten durch die vorhandenen ersetzt werden. Bei der Überprüfung der Bedingung für Agenten wird der Datensatz verschoben, da die Schleife für die vierte Iteration für die Abgleichsagenten verwendet wird. – MMR

Verwandte Themen