2016-10-06 1 views
0

Ich habe JSON-Daten im Format von:AngularJS/JSON: Bezieht sich auf Array-Member nach Wert anstelle von Index?

[ 
{ 
    "name": "partnerCodePrefix", 
    "val": "12345", 
    "inherit": true 
}, 
{ 
    "name": "partnerCode", 
    "val": "AAAAAnnnnnnnnnnnnnnn", 
    "inherit": false 
    } 
] 

Derzeit bin ich diese Daten in meinem UI mit Array-Indexnummern zugreifen, wie:

 <tr class="inherited"> 
      <td> 
       <label>Partner Code Prefix</label> 
      </td> 
      <td> 
       <input type="checkbox" name="partnerCodePrefixInherit" id="" ng-model="mob.mobData[1].inherit"> 
      </td> 
      <td> 
       <input type="text" ng-model="mob.mobData[1].val" ng-disabled="mob.mobData[1].inherit"> 
      </td> 
      </tr> 

Also, in diesem Beispiel, das ich das bekommen val von partnerCodePrefix mit

ng-model="mob.mobData[1].val" 

Allerdings würde ich die die val mit dem Array erhalten eher Mitglied name Wert und nicht sein Index, so dass ich die Zeilen bei Bedarf leichter neu ordnen kann.

Etwas wie:

ng-model="mob.mobData['name==partnerCodePrefix'].val" 

Gibt es eine Möglichkeit, dies zu tun? Was ist die korrekte Syntax?

+0

Es gibt keine Syntax/Weise zu tun 'mob.mobData ['name == partnerCodePrefix']. Val'. Haben Sie darüber nachgedacht, ein anderes Objekt zu erstellen, das Ihrem Bedarf entspricht? Sie könnten einfach eine Karte erstellen, deren Schlüssel der Name ist. Sie können auch lodash verwenden. – bhantol

Antwort

1

denke ich, dass Sie eine Funktion haben kann, dass der Wert ist der Parameter hat und gibt den Index des Arrays, wenn der Name auf den Parameter wie

mob.mobData [returnIndex (str)] gleich ist. Val

Verwandte Themen